Systems and methods for enabling transitions between items of content

ABSTRACT

Example implementation are directed to systems and methods for enabling transitions between items of content with a companion device to remotely control a main display. In an example implementation, a system includes a touch screen comprising a top surface, a display viewable through the top surface, and one or more interactive element on a portion of the top surface of the touch screen; and a processor coupled to the memory configured to execute one or more methods. In an example implementation, a method receives user input associated with the one or more interactive elements of the touch screen; determines event data based on the user input; provide feedback via the companion device based on the event data; and transmits the event data to control the main display.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. Utility application Ser. No.14/986,491, filed Dec. 31, 2015, entitled “SYSTEMS AND METHODS FORENABLING TRANSITIONS BETWEEN ITEMS OF CONTENT,” the contents of whichare hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The present disclosure relates to the field of interactive digital mediaand graphical user interfaces.

BACKGROUND

Digital media playback capabilities may be incorporated into a widerange of devices, including digital televisions, including so-called“smart” televisions, set-top boxes, laptop or desktop computers, tabletcomputers, e-book readers, digital recording devices, digital mediaplayers, video gaming devices, digital cameras, cellular phones,including so-called “smart” phones, and dedicated video streamingdevices. Digital media content may originate from a plurality of sourcesincluding, for example, local storage devices, over-the-air televisionproviders, satellite television providers, cable television providers,and online media services, including, online media streaming anddownloading services. Further, devices with digital media playbackcapabilities may provide a user with interfaces, including graphicaluser interfaces (GUIs), that enable the user to select an item ofcontent to access.

Due to the wide range of content users may access on devices withdigital media playback capabilities, traditional interfaces andtechniques for organizing, sorting, and displaying available items ofcontent may be less than ideal.

SUMMARY

The following brief summary is not intended to include all features andaspects of the present invention, nor does it imply that the inventionmust include all features and aspects discussed in this summary. Thepresent disclosure relates to techniques for enabling users to accessdigital media content and more specifically describes techniques andtools for enabling a user to efficiently access items of content. Itshould be noted that as used herein the term item of content may atleast include individual items of digital content (e.g., video files,music files, and digital images), and collections of individual items ofdigital content (e.g., a collection of video files, including, forexample, a television series, an album including music files, and analbum of digital images). Further, in some examples, items of contentmay refer to applications that, upon execution, enable a user to accessdigital content through execution of the application. In some examples,the techniques described herein may be implemented in a device withdigital media playback capabilities, including, for example, set-topboxes, televisions, laptop or desktop computers, gaming consoles,dedicated streaming devices, and/or an associated companion device,including, for example, remote controllers, tablet computers, and smartphones. It should be noted that in some instances the techniquesdescribed herein may generally be applicable to devices capable ofdisplaying graphical user interfaces and causing digital content to berendered on a display device.

According to one example of the disclosure, a method of facilitatingaccess to items of content comprises causing a video presentation for aselected item of content to be rendered on a display, determiningwhether touch event data corresponds to a particular gesture, causing aguide to be presented on the display, upon determining that the touchevent data corresponds to a vertical swipe gesture, and causing atransition from the selected item of content to another item of content,upon determining that the touch event data corresponds to a horizontalswipe gesture.

According to another example of the disclosure, a device forfacilitating access to items of content comprises one or more processorsconfigured to cause a video presentation for a selected item of contentto be rendered on a display, determine whether touch event datacorresponds to a particular gesture, cause a guide to be presented onthe display, upon determining that the touch event data corresponds to avertical swipe gesture, and cause a transition from the selected item ofcontent to another item of content, upon determining that the touchevent data corresponds to a horizontal swipe gesture.

According to another example of the disclosure, an apparatus forfacilitating access to items of content comprises means for causing avideo presentation for a selected item of content to be rendered on adisplay, means for determining whether touch event data corresponds to aparticular gesture, means for causing a guide to be presented on thedisplay, upon determining that the touch event data corresponds to avertical swipe gesture, and means for causing a transition from theselected item of content to another item of content, upon determiningthat the touch event data corresponds to a horizontal swipe gesture.

According to another example of the disclosure, a non-transitorycomputer-readable storage medium has instructions stored thereon thatupon execution cause one or more processors of a device to cause a videopresentation for a selected item of content to be rendered on a display,determine whether touch event data corresponds to a particular gesture,cause a guide to be presented on the display, upon determining that thetouch event data corresponds to a vertical swipe gesture, and cause atransition from the selected item of content to another item of content,upon determining that the touch event data corresponds to a horizontalswipe gesture.

The details of one or more examples are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages will be apparent from the description and drawings, and fromthe claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is block diagram illustrating an example of a system that mayimplement one or more techniques of this disclosure.

FIG. 2 is a block diagram illustrating an example of a computing devicethat may implement one or more techniques of this disclosure.

FIG. 3 is a block diagram illustrating an example of a companion devicethat may implement one or more techniques of this disclosure.

FIG. 4 is a block diagram illustrating an example of a companion devicethat may implement one or more techniques of this disclosure.

FIG. 5 is a conceptual diagram illustrating an example of a userinterface that may implement one or more techniques of this disclosure.

FIG. 6 is a conceptual diagram illustrating an example of a userinterface that may implement one or more techniques of this disclosure.

FIG. 7A is a conceptual diagram illustrating an example of a userinterface that may implement one or more techniques of this disclosure.

FIG. 7B-7C are conceptual diagrams illustrating exploded views of amechanical assembly of a companion device that may include the exampleuser interface illustrated in FIG. 7A.

FIGS. 8A-8D are conceptual diagrams illustrating example user inputsthat may be received by the example user interface illustrated in FIG.7A according to one or more techniques of this disclosure.

FIGS. 9A-9D are conceptual diagrams illustrating an example graphicaluser interface that may implement one or more techniques of thisdisclosure.

FIG. 10 is a conceptual diagram illustrating an example of a transitionon a display device in response to user input that may be received by anexample user interface according to one or more techniques of thisdisclosure.

FIG. 11 is a conceptual diagram illustrating an example of a transitionon a display device in response to user input that may be received by anexample user interface according to one or more techniques of thisdisclosure.

FIG. 12 is a conceptual diagram illustrating an example graphical userinterface that may implement one or more techniques of this disclosure.

FIG. 13 is a conceptual diagram illustrating an example of multi-levelgestures according to one or more techniques of this disclosure.

FIGS. 14A-14C are conceptual diagrams illustrating an example graphicaluser interface that may implement one or more techniques of thisdisclosure.

FIG. 15 is a conceptual diagram illustrating an example of transitionson a display device in response to user input that may be received by anexample user interface according to one or more techniques of thisdisclosure.

FIGS. 16A-16F are conceptual diagrams illustrating an example graphicaluser interface that may implement one or more techniques of thisdisclosure.

FIGS. 17A-17B are conceptual diagrams illustrating an example of atransition on a display device in response to user input that may bereceived by an example user interface according to one or moretechniques of this disclosure.

FIGS. 18A-18B are conceptual diagrams illustrating an example graphicaluser interface that may implement one or more techniques of thisdisclosure.

FIGS. 19A-19E is a flowchart illustrating an example method of selectingitems of content according to one or more techniques of this disclosure.

FIG. 20 is a flowchart illustrating an example of a background processaccording to one or more techniques of this disclosure.

DETAILED DESCRIPTION

Described herein are systems and methods for enabling a user to accessitems of content. Some embodiments extend to a machine-readable mediumembodying instructions which, when executed by a machine, cause themachine to perform any one or more of the methodologies describedherein. Other features will be apparent from the accompanying drawingsand from the detailed description that follows. Examples merely typifypossible variations. Unless explicitly stated otherwise, components andfunctions are optional and may be combined or subdivided, and operationsmay vary in sequence or may be combined or subdivided. In the followingdescription, for purposes of explanation, numerous specific details areset forth to provide a thorough understanding of example embodiments. Itwill be evident to one skilled in the art, however, that the presentsubject matter may be practiced without these specific details.

Devices with digital media playback capabilities may enable a user toaccess items of content from diverse sources. For example, devices withdigital media playback capabilities, including, for example,televisions, set-top boxes, laptop or desktop computers, tabletcomputers, video gaming devices, smart phones, and dedicated videostreaming devices may enable a user thereof to access digital mediacontent through one or more digital media content services. Examples ofdigital media content services include streaming services, televisionservices, and combinations thereof. Current commercial examples ofstreaming services include streaming services available from Hulu®, LLCand Netflix®, Inc. Current commercial examples of combinations oftelevision and streaming services include services available from theComcast® Corporation, DirecTV®, LLC and Home Box Office®, Inc.

Devices with digital media playback capabilities, including, forexample, televisions, set-top boxes, and dedicated video streamingdevices may include a push-button remote controller. Push-button remotecontrollers enable a user to select an item of content by activating asequence of buttons, for example, keying a number associated with atelevision channel. Further, devices with digital media playbackcapabilities may be configured to provide users thereof with graphicaluser interfaces that enable the selection of content. For example, aset-top box may be configured to provide a user with an electronicprogramming guide (EPG), where the electronic programming guide displaysitems of content in a grid. That is, an EPG may display items of contentin a grid according to television networks and time slots. A push-buttonremote controller may enable a user to select a particular item ofcontent from within a grid for viewing. Further, some devices withdigital media playback capabilities may enable a user to select items ofcontent using a secondary computing device (e.g., a smart phone, tablet,etc.) in communication with the device. As used herein, a companiondevice may refer to any device configured to communicate with acomputing device and may include, in some examples, a device including auser interface (e.g., push buttons, a touch screen, etc.) incommunication with a device with digital media presentationcapabilities.

Devices with digital media playback capabilities may enable a user toaccess items of content from diverse sources. For example, a singledevice with digital media capabilities may enable a user to accessdigital media from a television service, through a tuner, as well asfrom an online media streaming service, through a network interface,thereby increasing the types and number of items of content available toa user. Conventional user interfaces, including traditional graphicaluser interfaces and/or traditional push-button remote controllers may beless than ideal.

FIG. 1 is block diagram illustrating an example of a system that mayimplement one or more techniques described in this disclosure. System100 may be configured to enable a user to access items of content inaccordance with the techniques described herein. In the exampleillustrated in FIG. 1, system 100 includes one or more computing devices102A-102N, communications network 104, television service provider site110, one or more media service provider sites 118A-118N, webpage contentdistribution site 120, application distribution site 122, and companiondevice(s) 130. System 100 may include software modules operating on oneor more servers. Software modules may be stored in a memory and executeda processor. Servers may include one or more processors and a pluralityof internal and/or external memory devices. Examples of memory devicesinclude file servers, file transfer protocol (FTP) servers, networkattached storage (NAS) devices, local disk drives, or any other type ofdevice or storage medium capable of storing data. Storage media mayinclude optical discs, including, e.g., Blu-ray discs, DVDs, andCD-ROMs, flash memory, or any other suitable digital storage media. Whenthe techniques described herein are implemented partially in software, adevice may store instructions for the software in a suitable,non-transitory computer-readable medium and execute the instructions inhardware using one or more processors.

System 100 represents an example of a system that may be configured toallow digital content, such as, for example, music, videos, includingmovies and television programming, images, webpages, messages, voicecommunications, and applications, to be distributed to and accessed by aplurality of computing devices, such as computing devices 102A-102N. Inthe example illustrated in FIG. 1, computing devices 102A-102N mayinclude any device configured to transmit data to and/or receive datafrom communication network 104. For example, computing devices 102A-102Nmay be equipped for wired and/or wireless communications and may includeset-top boxes, digital video recorders, televisions, desktop, laptop, ortablet computers, gaming consoles, mobile devices, including, forexample, “smart” phones, cellular telephones, and personal gamingdevices. It should be noted that although example system 100 isillustrated as having distinct sites, such an illustration is fordescriptive purposes and does not limit system 100 to a particularphysical architecture. Functions of system 100 and sites includedtherein may be realized using any combination of hardware, firmwareand/or software implementations.

Communications network 104 may comprise any combination of wirelessand/or wired communication media. Communications network 104 may includecoaxial cables, fiber optic cables, twisted pair cables, wirelesstransmitters and receivers, routers, switches, repeaters, base stations,or any other equipment that may be useful to facilitate communicationsbetween various devices and sites. Communications network 104 mayoperate according to a combination of one or more telecommunicationprotocols. Telecommunications protocols may include proprietary aspectsand/or may include standardized telecommunication protocols. Examples ofstandardized telecommunications protocols include Digital VideoBroadcasting (DVB) standards, Advanced Television Systems Committee(ATSC) standards, including the so-called ATSC 3.0 suite of standardscurrently under development, Integrated Services Digital Broadcasting(ISDB) standards, Digital Terrestrial Multimedia Broadcast (DTMB),Digital Multimedia Broadcasting (DMB), Data Over Cable Service InterfaceSpecification (DOCSIS) standards, Global System Mobile Communications(GSM) standards, code division multiple access (CDMA) standards, 3rdGeneration Partnership Project (3GPP) standards, EuropeanTelecommunications Standards Institute (ETSI) standards, InternetProtocol (IP) standards, Wireless Application Protocol (WAP) standards,and IEEE standards, such as, for example, one or more of standardsincluded in the IEEE 802 family of standards.

As illustrated in FIG. 1, networks of different types may be definedwithin communications network 104. Networks may be defined according tophysical and/or logical aspects. For example, networks that share thesame physical infrastructure (e.g., coaxial cables) may be distinguishedbased on a primary service type (e.g., webpage access or televisionservice) or communications protocols (e.g., IP/TCP or MPEG-TS). In theexample illustrated in FIG. 1, communications network 104 includestelevision provider network 106 and public network 108. It should benoted that although television provider network 106 and public network108 are illustrated as distinct, television provider network 106 andpublic network 108 may share physical and/or logical aspects.

Television provider network 106 is an example of a network configured toprovide a user with television services. For example, televisionprovider network 106 may include public over-the-air televisionnetworks, public or subscription-based satellite television serviceprovider networks, and public or subscription-based cable televisionprovider networks. It should be noted that although in some examplestelevision provider network 106 may primarily be used to providetelevision services, television provider network 106 may also provideother types of data and services according to any combination of thetelecommunication protocols described herein.

Public network 108 is an example of a packet-based network, such as, alocal area network, a wide-area network, or a global network, such asthe Internet, configured to provide a user with World Wide Web basedservices. Public network 108 may be configured to operate according toInternet Protocol (IP) standards. It should be noted that although insome examples public network 108 may primarily be used to provide accessto hypertext web pages, public network 108 may also provide other typesof media content according to any combination of the telecommunicationprotocol described herein.

Referring again to FIG. 1, television service provider site 110 may beconfigured to provide computing devices 102A-102N with televisionservice. For example, television service provider site 110 may include apublic broadcast station, a cable television provider, or a satellitetelevision provider and may be configured to provide television servicesto analog and/or digital televisions and set-top boxes. In the exampleillustrated in FIG. 1, television service provider site 110 includes onair distribution engine 112 and on demand engine 114. On airdistribution engine 112 may be configured to receive a plurality of onair feeds and distribute the feeds to computing devices 102A-102Nthrough television provider network 106. For example, on airdistribution engine 112 may be configured to receive one or moreover-the-air television events via a satellite uplink/downlink anddistribute the over-the-air television events to one or more users of asubscription-based cable television service.

On demand engine 114 may be configured to access a library of multimediacontent and distribute multimedia content to one or more of computingdevices 102A-102N through television provider network 106. For example,on demand engine 114 may access multimedia content (e.g., music, movies,and TV shows) stored in multimedia database 116A and provide asubscriber of a cable television service with movies on a pay per view(PPV) basis. For example, a user may purchase access to an item ofcontent for a limited period (e.g., 24 hour access to a movie for$4.99). Multimedia database 116A may include storage devices configuredto store multimedia content. It should be noted that multimedia contentaccessed through on demand engine 114 may also be located at varioussites within system 100 (e.g., peer-to-peer distribution may besupported).

Media service provider sites 118A-118N represent examples of multimediaservice providers. Media service provider sites 118A-118N may beconfigured to access a library of multimedia content and distributemultimedia content to one or more of computing devices 102A-102N throughpublic network 108. For example, media service provider sites 118A-118Nmay access multimedia (e.g., music, movies, and TV shows) stored inmultimedia databases 116B-116N and provide a user of a media servicewith multimedia. Multimedia databases 116B-116N may include storagedevices configured to store multimedia content. In one example, a mediaservice provider site may be configured to provide content to one ormore of computing devices 102A-102N using the Internet protocol suite.In some examples, a media service may be referred to as a streamingservice. Commercial examples of streaming services are described above.As described above, television provider network 106 and public network108 may share physical and logical aspects. Thus, content accessed byone or more of computing devices 102A-102N from a media service providersite 118A-118N may be transmitted through physical components oftelevision provider network 106. For example, a user of one of computingdevices 102A-102N may access the Internet and multimedia contentprovided by a media service through a cable modem connected to a coaxialnetwork maintained by a cable television provider.

Webpage content distribution site 120 represents an example of a webpageservice provider. Webpage content distribution site 120 may beconfigured to provide hypertext based content to one or more ofcomputing devices 102A-102N through public network 108. It should benoted that hypertext based content may include audio and video content.Hypertext content may be defined according to programming languages,such as, for example, Hypertext Markup Language (HTML), Dynamic HTML,and Extensible Markup Language (XML). Examples of webpage contentdistribution sites include the United States Patent and Trademark Officewebsite. In some examples, digital media services may be associated witha website enabling a user to search for items of content accessiblethrough that particular service. Further, in some examples websites mayprovide information with respect to items of content (e.g., plotsummaries, user reviews, etc.).

Application distribution site 122 represents an example of anapplication distribution service. Application distribution site 122 maybe configured to distribute developed software applications to one ormore of computing devices 102A-102N. In one example, softwareapplications may include games and programs operable on computingdevices. In other examples, software applications may be configured toallow a computing device to access content provided by a webpage contentdistribution site in manner specific to the computing device. Forexample, software applications may be configured to provide enhanced orreduced functionality of a webpage to a mobile device or a set-top box.In one example, a software application may enable a user to access amedia service on a particular device. For example, a softwareapplication may enable a user to access a streaming service using agaming console. Further, software applications may be provided to acomputing device to enable the computing device to perform one or moreof the techniques described herein.

Software applications may be developed using a programming language.Examples of programming languages include, Java™, Jini™, C, C++, Perl,UNIX Shell, Visual Basic, and Visual Basic Script. In some examples,developers may write software applications using a software developmentkit (SDK) provided by a device manufacturer or a service provider. Inthe example where one or more of computing devices 102A-102N are mobiledevices, application distribution site 122 may be maintained by a mobiledevice manufacturer, a service provider, and/or a mobile deviceoperating system provider. In the example where one or more of computingdevices 102A-102N are set-top boxes, application distribution site 122may be maintained by a set-top box manufacturer, a service provider,and/or an operating system provider. In some examples, an applicationdistribution site may be referred to as an app store. Examples ofcurrent commercial application distribution sites include sitesmaintained by Google®, Inc. and Apple®, Inc.

Referring again to FIG. 1, in addition to being configured to receivedigital media content from communications network 104, computing devices102A-102N may be configured to communicate with companion device(s) 130either directly or through communications network 104. As used herein, acompanion device may refer to any device configured to communicate witha computing device. Companion device(s) 130 may be equipped for wiredand/or wireless communications and may include, for example, a desktop,a laptop, or a tablet computer, a smartphone, personal gaming device,remote controllers, etc. In the example illustrated in FIG. 1, companiondevice(s) 130 may be configured to communicate directly with computingdevices 102A-102N (e.g., using a short range or near field communicationprotocols), communicate with computing devices 102A-102N via a localarea network (e.g., through a Wi-Fi router), and/or communicate with awide area network (e.g., a cellular network). Further, in some examples,companion device(s) 130 may act as a client device for one of computingdevices 102A-102N. For example, companion device(s) 130 may beconfigured to act as a Universal Plug and Play (UPnP) client or amulticast Domain Name System (mDNS) client. In one example, companiondevice(s) 130 may be registered with one (or more) of computing devices102A-102N using its media access control (MAC) address or a uniquedevice identifier and/or a user's subscriber identifier. In one example,companion device(s) 130 may execute applications in conjunction withcomputing devices 102A-102N. As described in detail below, companiondevice(s) 130 may be configured to provide user interfaces that enableusers to provide input. For example, upon selection through a userinterface of a companion device, an item of content may be presented onone of computing devices 102A-102N. It should be noted that although asingle companion device is illustrated in the example of FIG. 1, eachcomputing device 102A-102N may be associated with one or more companiondevice(s) 130. For example, each member of a household may have acompanion device (e.g., a smartphone) associated with a computing device(e.g., a set-top box).

FIG. 2 is a block diagram illustrating an example of a computing devicethat may implement one or more techniques of this disclosure. Computingdevice 200 is an example of a computing device that may be configured totransmit data to and receive data from a communications network, allow auser to access multimedia content, and execute one or more applications.Computing device 200 may include or be part of a stationary computingdevice (e.g., a desktop computer, a television, a set-top box, a gamingconsole, a dedicated multimedia streaming device, a digital videorecorder, etc.), a portable computing device (e.g., a mobile phone, alaptop, a personal data assistant (PDA), a tablet device, a portablegaming device, etc.) or another type of computing device. In the exampleillustrated in FIG. 2, computing device 200 is configured to send andreceive data via a television network, such as, for example, televisionnetwork 106 described above and send and receive data via a publicnetwork, such as, for example, public network 108. It should be notedthat in other examples, computing device 200 may be configured to sendand receive data through one of television network 106 or public network108. The techniques described herein may be utilized by devicesconfigured to communicate using any and all combinations ofcommunications networks.

As illustrated in FIG. 2, computing device 200 includes centralprocessing unit(s) 202, system memory 204, system interface 210, modem212, transport module 214, audio-video de-multiplexer (AV demux) 216,network interface 218, storage device(s) 220, user interface(s) 222,audio decoder 224, audio processor 226, video decoder 228, graphicsprocessing unit 230, and display processor 232. As illustrated in FIG.2, system memory 204 includes operating system 206, applications 208,and content selection application 209. Each of central processingunits(s) 202, system memory 204, system interface 210, modem 212,transport module 214, AV demux 216, network interface 218, storagedevice(s) 220, user interface(s) 222, audio decoder 224, audio processor226, video decoder 228, graphics processing unit 230, and displayprocessor 232 may be interconnected (physically, communicatively, and/oroperatively) for inter-component communications and may be implementedas any of a variety of suitable circuitry, such as one or moremicroprocessors, digital signal processors (DSPs), application specificintegrated circuits (ASICs), field programmable gate arrays (FPGAs),discrete logic, software, hardware, firmware or any combinationsthereof. It should be noted that although example computing device 200is illustrated as having distinct functional blocks, such anillustration is for descriptive purposes and does not limit computingdevice 200 to a particular hardware architecture. Functions of computingdevice 200 may be realized using any combination of hardware, firmwareand/or software implementations. In some examples, functionality ofcomputing device 200 may be implemented using one or more so-calledsystems on a chip (SOC). For example, computing device 200 may include aset-top box including a SOC. One example of a commercially available SOCthat may be included in a set-top box is the Broadcom® BCM7252 Ultra HDSoC.

Central processing unit(s) 202 may be configured to implementfunctionality and/or process instructions for execution in computingdevice 200. Central processing unit(s) 202 may be capable of retrievingand processing instructions, code, and/or data structures forimplementing one or more of the techniques described herein.Instructions may be stored on a computer readable medium, such as systemmemory 204 or storage device(s) 220. Central processing unit(s) 202 mayinclude multi-core central processing units. As described in detailbelow, the techniques described herein may be used to optimize CPUusage. For example, one or more background processing techniques may beused to reduce the delay (or lag) experienced by a user interacting withone of the graphical user interfaces described below.

System memory 204 may be described as a non-transitory or tangiblecomputer-readable storage medium. In some examples, system memory 204may provide temporary and/or long-term storage. In some examples, systemmemory 204 or portions thereof may be described as non-volatile memoryand in other examples portions of system memory 204 may be described asvolatile memory. Examples of volatile memories include random accessmemories (RAM), dynamic random access memories (DRAM), and static randomaccess memories (SRAM). Examples of non-volatile memories includemagnetic hard discs, optical discs, floppy discs, flash memories, orforms of electrically programmable memories (EPROM) or electricallyerasable and programmable (EEPROM) memories.

System memory 204 may be configured to store information that may beused by computing device 200 during operation. System memory 204 may beused to store program instructions for execution by central processingunit(s) 202 and may be used by software or applications running oncomputing device 200 to temporarily store information during programexecution. For example, system memory 204 may store instructionsassociated with operating system 206, applications 208, and contentselection application 209. System memory 204 may include one or moredistinct memory devices, where each memory device may include a distincttype of memory interface. For example, system memory 204 may include aninternal hard disk or solid state drive, a random access memory module,an embedded MultiMediaCard (eMMC) memory device, and/or one or morecaches (e.g., CPU caches and/or GPU caches). As described in detailbelow, images associated with a graphical user interface may be loadedfrom a portion of system memory 204 to another portion of system memory204 in order to reduce the time required to render the images on adisplay based on received user inputs. For example, a subset of imagesassociated with a graphical user interface may be loaded into a cachebased on user behavior. It should be noted that the techniques describedherein may be generally applicable to any memory architecture.

Applications 208 and content selection application 209 may includeapplications implemented within or executed by computing device 200 andmay be implemented or contained within, operable by, executed by, and/orbe operatively/communicatively coupled to components of computing device200. Applications 208 and content selection application 209 may includeinstructions that may cause central processing unit(s) 202 of computingdevice 200 to perform particular functions. Applications 208 and contentselection application 209 may include algorithms which are expressed incomputer programming statements, such as, for-loops, while-loops,if-statements, do-loops, etc. Applications 208 and content selectionapplication 209 may be distributed to computing device 200 through anapplication distribution site, for example, application distributionsite 122. In one example, applications 208 and content selectionapplication 209 may cause computing device 200 to perform functionsassociated with the example techniques described herein that enable auser to access items of content. Applications 208 and content selectionapplication 209 may cause one or more graphical user interfaces to bepresented that enable a user to provide data for use by an application.In one example, applications 208 may include one or more dedicatedapplications enabling a user to access a digital media service. Itshould be noted that as used herein a dedicated application enabling auser to access a digital media service may be high integrated with anapplication or operating system of a computing device. For example, aset-top box supported by a cable television provider may enable a userto access items of content from a television service, an on demand mediaservice maintained by the cable television service provider, and/or athird party media streaming service. In some cases, each distinctgraphical user interface enabling a user to select items of content toaccess may be referred to as a dedicated application, a source, and/or aportal. In one example, content selection application 209 may beprovided to a computing device and cause a computing device to enable auser to select items of content according to one or more of thetechniques described herein. As described in detail below contentselection application 209 may operate in conjunction with an applicationrunning on a companion device.

As further illustrated in FIG. 2, applications 208 and content selectionapplication 209 may execute in conjunction with operating system 206.That is, operating system 206 may be configured to facilitate theinteraction of applications 208 and content selection application 209with central processing unit(s) 202, and other hardware components ofcomputing device 200. It should be noted that in some examples,components of operating system 206 and components acting in conjunctionwith operating system 206 may be referred to as middleware. Further, insome examples, content selection application 209 may include anapplication programming interface (API). The techniques described hereinmay be utilized by devices configured to operate using any and allcombinations of software architectures. Operating system 206 may be anoperating system designed to be installed on laptops, desktops,smartphones, tablets, set-top boxes, digital video recorders,televisions and/or gaming devices. In one example, operating system 206may include one or more of operating systems or middleware componentsdeveloped by OpenTV®, Windows® operating systems, Linux operationsystems, Mac OS®, Android® operating systems, and any and allcombinations thereof.

System interface 210 may be configured to enable communications betweencomponents of computing device 200. In one example, system interface 210comprises structures that enable data to be transferred from one peerdevice to another peer device or to a storage medium. For example,system interface 210 may include a chipset supporting AcceleratedGraphics Port (AGP) based protocols, Peripheral Component Interconnect(PCI) bus based protocols, such as, for example, the PCI Express™ (PCIe)bus specification, which is maintained by the Peripheral ComponentInterconnect Special Interest Group, or any other form of structure thatmay be used to interconnect peer devices.

Storage device(s) 220 represent memory of computing device 200 that maybe configured to store relatively larger amounts of information forrelatively longer periods of time than system memory 204. For example,in the example where computing device 200 is included as part of adigital video recorder, storage device(s) 220 may include a hard diskdrive configured to store numerous video files. Similar to system memory204, storage device(s) 220 may also include one or more non-transitoryor tangible computer-readable storage media. Storage device(s) 220 mayinclude internal and/or external memory devices and in some examples mayinclude volatile and non-volatile storage elements.

User interface(s) 222 may include devices configured to receive inputfrom a user during operation of computing device 200. For example, userinterface(s) 222 may include buttons and switches, motion sensors (e.g.,accelerometers), touch-sensitive sensors, a track pad, a mouse, akeyboard, a microphone, a video camera, or any other type of deviceconfigured to receive user input. User interface(s) 222 may beintegrated into computing device 200. For example, in the case wherecomputing device 200 includes a television, user interface(s) 222 mayinclude push buttons located on the television. Further, userinterface(s) 222 may be integrated into devices external to computingdevice 200. For example, user interface(s) 222 may be integrated into acompanion device, such as, for example, companion device 300 andcompanion device 400 described in detail below. In some examples, anexternal device including user interfaces(s) 222 may be operativelycoupled to computing device 200 using a standardized communicationprotocol, such as for example, Universal Serial Bus protocol (USB),Bluetooth, ZigBee or a proprietary communications protocol, such as, forexample, a proprietary infrared communications protocol. It should benoted that techniques described herein may be generally applicableregardless of the type of device including a user interface andregardless of the manner in which the device communicates with computingdevice 200. As described in detail below, user interface(s) 222 mayinclude a display configured to display the graphical users interfacesdescribed herein. For example, in the case where computing device 200includes a television, a companion device (e.g., a smart phone or adedicated remote controller) in communication with a television mayinclude a user interface including a touch-sensitive display presentinga graphical user interface described herein. Further, as described indetail below, a user may provide commands to computing device 200 byactivating portions of a touch-sensitive display.

Referring again to FIG. 2, computing device 200 is configured to sendand receive data via a television network, such as, for example,television network 106 described above and send and receive data via apublic network, such as, for example, public network 108. Acommunications network may be described based on a model includinglayers that define communication properties, such as, for example,physical signaling, addressing, channel access control, packetproperties, and data processing in a communications system. In theexample illustrated in FIG. 2, modem 212, transport module 214, and AVdemux 216 may be configured to perform lower layer processing associatedwith television network 106 and network interface 218 may be configuredto perform lower layer processing associated with public network 108.

In one example, modem 212 may be configured to perform physicalsignaling, addressing, and channel access control according to thephysical and MAC layers utilized in a television provider network, suchas, for example, television provider network 106. In one example, modem212 may configured to receive signals from a coaxial cable and/or anover-the-air signal and perform low level signal processing (e.g.,demodulation). In one example, modem 212 may be configured to extracttransport streams from signals received from a coaxial cable. In oneexample, a transport stream may be based on a transport stream definedby the Moving Pictures Experts Group (MPEG). In one example, a transportstream may include a plurality of program streams where each programstream respectively corresponds to a program available from a televisionnetwork. Further, a transport stream may include a plurality of datastreams (e.g., Program Map Table and EPG data).

Transport module 214 may be configured to receive data from modem 212and process received data. For example, transport module 214 may beconfigured to receive a transport stream including a plurality ofprogram streams and extract individual program streams from a receivedtransport stream. In one example, a program stream may include a videostream, an audio stream, and a data stream. AV demux 216 may beconfigured to receive data from transport module 214 and processreceived data. For example, AV demux 216 may be configured to receive aprogram stream from transport module 214 and extract audio packets,video packets, and data packets. That is, AV demux 216 may applydemultiplexing techniques to extract video streams, audio streams, anddata streams from a program stream. In one example, AV demux 216 may beconfigured to decapsulate packetized elementary video and audio streamsfrom a transport stream defined according to MPEG-2 Part 1. It should benoted that although modem 212, transport module 214, and AV demux 216are illustrated as distinct functional blocks, the functions performedby modem 212, transport module 214, and AV demux 216 may be highlyintegrated and realized using any combination of hardware, firmwareand/or software implementations. Further, it should be noted that theexample lower layer processing described with respect to modem 212,transport module 214, and AV demux 216 should not be constructed tolimit the type of television services computing device 200 may beconfigured to receive. That is, computing device 200 may be configuredto receive television services according to any number of communicationprotocols (e.g., ATSC, DVB, ISDB, etc.), including those currently underdevelopment (e.g., the ATSC 3.0 suite of standards).

Network interface 218 may be configured to enable computing device 200to send and receive data via a public network. As described above, datasent or received via a public network may include data associateddigital content, such as, for example, music, videos, images, webpages,messages, voice communications, and applications. Network interface 218may include a network interface card, such as an Ethernet card, anoptical transceiver, a radio frequency transceiver, or any other type ofdevice configured to send and receive information. Network interface 218may be configured to perform physical signaling, addressing, and channelaccess control according to the physical and MAC layers utilized in apublic network, such as, for example, public network 108. Further, in amanner similar to that described above with respect to transport module214 and AV demux 216, network interface 218 may be configured to extractaudio packets, video packets, and data packets from a data stream, orsimilar fragments from a similar data structure. For example, networkinterface 218 may be configured to extract video packets, audio packets,and data packets according to one or more streaming protocols includinginternet protocol (IP), transport control protocol (TCP), real timestreaming protocol (RTSP), user datagram protocol (UDP), real timeprotocol (RTP), MPEG transport streaming protocols, IPTV protocols, andthe so-called HTTP Live Stream (HLS) Protocol developed by Apple, Inc.It should be noted, that the techniques described herein are generallyapplicable to any and all methods of digital content distribution andare not limited to particular communications network implementations.For example, the techniques described herein may be applicable todigital content originating from one or more of a broadcast, amulticast, a unicast, an over-the-top content source, a personal videorecorder (PVR), and a peer-to-peer content source.

In some cases, streaming protocols may utilize media segments and index(or manifest) files. That is, an event (e.g., a stream corresponding toan over-the-air television broadcast or the like) may be segmented intoa plurality of media files, which may be referred to as segments orfragments. An index file may provide a location (e.g., a universalresource locator (URL) or universal resource identifier (URI)) for eachsegment included in an event and timing information associated with eachsegment (e.g., the length of each segment in seconds and the playbackorder of each segment). Typically, to initiate a streaming session acomputing device will download an index file, parse the index file,begin downloading a first media segment in a sequence of segments, andupon a sufficient portion of the first media segment being downloaded,begin playback of a of the first media segment. Subsequent mediasegments included in an event may be downloaded after a previous mediasegment has been downloaded. Typically, for an event, media segments areapproximately 5-10 seconds in length. It should be noted that in sometypical cases, a delay with respect to downloading a particular mediasegment may propagate a throughout the presentation on an event on acomputing device. That is, buffering associated with one segment maypropagate throughout the presentation of the event. In this manner, theplayback of an event on a particular computing device may be delayedwith respect to system time (i.e., the current date and time of day).

Referring again to FIG. 2, data associated with digital content, suchas, for example, music, videos, images, webpages, messages, voicecommunications, and applications may be stored in a computer readablemedium, such as, for example, system memory 204 and storage device(s)220. Data stored in a memory device may be retrieved and processed bycentral processing unit(s) 202, audio decoder 224, audio processor 226,video decoder 228, graphics processing unit 230, and display processor232. As described above, central processing unit(s) 202 may be capableof retrieving and processing instructions, code, and/or data structuresfor implementing one or more of the techniques described herein. Each ofaudio decoder 224, audio processor 226, video decoder 228, graphicsprocessing unit 230, and display processor 232 may also be capable ofretrieving and processing instructions, code, and/or data structures forimplementing one or more of the techniques described herein.

Audio decoder 224 may be configured to retrieve and process coded audiodata. For example, audio decoder 224 may be a combination of hardwareand software used to implement aspects of audio codec. Audio data may becoded using multi-channel formats such as those developed by Dolby andDigital Theater Systems. Audio data may be coded using a compressed oruncompressed format. Examples of compressed audio formats includeMPEG-1, 2 Audio Layers II and III, AC-3, AAC, and Ogg Vorbis. An exampleof an uncompressed audio format includes pulse-code modulation (PCM)audio format. Audio processor 226 may be configured to retrieve capturedaudio samples and may process audio data for output to an audio system(not shown). In some examples, audio processor 226 may include a digitalto analog converter. An audio system may comprise any of a variety ofaudio output devices such as headphones, a single-speaker system, amulti-speaker system, or a surround sound system. Video decoder 228 maybe configured to retrieve and process coded video data. For example,video decoder 228 may be a combination of hardware and software used toimplement aspects of video codec. In one example, video decoder 228 maybe configured to decode video data encoded according to any number ofvideo compression standards, such as ITU-T H.261, ISO/IEC MPEG-1 Visual,ITU-T H.262 or ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4Visual, ITU-T H.264 (also known as ISO/IEC MPEG-4 AVC), VP8, VP9, andHigh-Efficiency Video Coding (HEVC).

As described above, a device with media playback capabilities mayprovide a graphical user interface that enables a user to access itemsof content. A graphical user interface may include images and graphicsdisplayed in conjunction with video content (e.g., playback iconsoverlaid on a video presentation). Graphics processing unit 230 is anexample of a dedicated processing unit that may be configured togenerate graphical user interfaces, including the graphical userinterfaces described herein. That is, graphics processing unit 230 maybe configured to receive commands and content data and output pixeldata. Graphic processing unit 230 may operate according to a graphicspipeline process (e.g., input assembler, vertex shader, geometry shader,rasterizer, pixel shader, and output merger). Graphics processing unit230 may include multiple processing cores and may be configured tooperate according to OpenGL (Open Graphic Library, managed by theKhronos Group), Direct3D (managed by Microsoft, Inc.), or the like.

Display processor 232 may be configured to retrieve and process pixeldata for display. For example, display processor 232 may receive pixeldata from video decoder 228 and/or graphics processing unit 230 andoutput data for display. Display processor 232 may be coupled to adisplay, such as display 250 (not shown in FIG. 2) using a standardizedcommunication protocol (e.g., High-Definition Multimedia Interface(HDMI), Digital Visual Interface (DVI), DisplayPort, component video,composite video, and/or Video Graphics Array (VGA)). Display 250 maycomprise one of a variety of display devices such as a liquid crystaldisplay (LCD), a plasma display, an organic light emitting diode (OLED)display, or another type of display device capable of presenting videodata to a user. Display 250 may include a standard definitiontelevision, a high definition television, or an ultra-resolution displayas described above. Further, display 250 may include an integrateddisplay of a portable computing device (e.g., a mobile phone, a laptop,a personal data assistant (PDA), or a tablet device). As describedabove, in some examples a portable computing device may operate as acompanion device for a stationary computing device.

As described above, computing device 200 may be configured to send datato and receive data from a companion device. FIG. 3 is a block diagramillustrating an example of a companion device that may implement one ormore techniques of this disclosure. Companion device 300 may be includedas part of a portable computing device. As illustrated in FIG. 3,companion device 300 includes central processor unit(s) 302, systemmemory 304, system interface 310, storage device(s) 312, userinterface(s) 314, and network interface 316. As illustrated in FIG. 3,system memory 304 includes operating system 306, applications 308, andcontent selection application 309. It should be noted that althoughexample companion device 300 is illustrated as having distinctfunctional blocks, such an illustration is for descriptive purposes anddoes not limit companion device 300 to a particular hardware or softwarearchitecture. For example, in some instances, companion device 300 mayinclude a combination of ASICs and basis circuitry to implement thefunctions described herein. Further, in some examples, companion device300 may not include a dedicated central processing unit and an operatingsystem. Functions of companion device 300 may be realized using anycombination of hardware, firmware and/or software implementations.

Referring again to FIG. 3, each of central processor unit(s) 302, systemmemory 304, and system interface 310, may be similar to centralprocessor unit(s) 202, system memory 204, and system interface 210described above. Storage device(s) 312 represent memory of companiondevice 300 that may be configured to store larger amounts of data thansystem memory 304. Storage device(s) 312 may be internal or externalmemory and in some examples may include non-volatile storage elements.For example, storage device(s) 312 may include memory cards (e.g., aSecure Digital (SD) memory card), and/or an internal solid state drive.User interface(s) 314 may include devices configured to receive inputfrom a user. For example, user interface(s) 314 may be similar to userinterface(s) 222 described above, and may include buttons and switches,motion sensors, a touch-sensitive sensors, a track pad, a mouse, akeyboard, a microphone, a video camera, or any other type of deviceconfigured to receive user input. In one example, user interface(s) 314may include a touchscreen display configured to display one or more ofthe graphical user interfaces described herein. As described above andin further detail below, a user may provide commands to a computingdevice (e.g., a television or a set-top box) by activating portions of agraphical user interface displayed on a companion device 300.

Network interface 316 may be configured to enable companion device 300to communicate with external computing devices, such as computing device200 and other devices or servers. Further, in the example wherecompanion device 300 includes a smartphone, or the like, networkinterface 316 may be configured to enable companion device 300 tocommunicate with a cellular network. Network interface 316 may include anetwork interface card, such as an Ethernet card, an opticaltransceiver, a radio frequency transceiver, or any other type of devicethat can send and receive information. Network interface 316 may beconfigured to operate according to one or more communication protocolssuch as, for example, a Global System Mobile Communications (GSM)standard, a code division multiple access (CDMA) standard, a 3rdGeneration Partnership Project (3GPP) standard, an Internet Protocol(IP) standard, a Wireless Application Protocol (WAP) standard,Bluetooth, ZigBee, and/or an IEEE standard, such as, one or more of the802.11 standards, as well as various combinations thereof.

As illustrated in FIG. 3, system memory 304 includes operating system306, applications 308, and content selection application 309 storedthereon. Operating system 306 may be configured to facilitate theinteraction of applications 308 and content selection application 309with central processing unit(s) 302, and other hardware components ofcompanion device 300. Operating system 306 may include any version ofany of the example operating systems described above, or any similaroperating system. It should be noted that the techniques describedherein are not limited to a particular operating system. Applications308 and content selection application 309 may be any applicationsimplemented within or executed by companion device 300 and may beimplemented or contained within, operable by, executed by, and/or beoperatively/communicatively coupled to components of companion device300. Applications 308 and content selection application 309 may includeinstructions that may cause central processing unit(s) 302 of companiondevice 300 to perform particular functions. Applications 308 may includealgorithms which are expressed in computer programming statements, suchas, for loops, while-loops, if-statements, do-loops, etc. In oneexample, applications 308 may include one or more dedicated applicationsenabling a user to access a digital media service. In one example, anapplication distribution site (e.g., application distribution site 122)may provide content selection application 309 to companion device 300.

As described above, content application 209 may operate in conjunctionwith an application running on a companion device. In one example,content selection application 309 may be configured to receive data froma computing device and parse the data in order to determine a contextand/or a sub-context. A context may identify an application currentlyrunning on a computing device and a sub-context may identify aparticular aspect of an application running on a computing device, e.g.,a graphical user interface currently displayed. Content selectionapplication 309 may be configured to provide functionality based on acontext and/or a sub-context. For example, as described in detail below,a companion device may include a user interface that displays softbuttons based on an application currently running on a computing deviceand a companion device enable a user to cause different functionality tooccur based on an application currently running on a computing device.

As described above, in some examples, a companion device may not includea dedicated central processing unit and an operating system. FIG. 4 is ablock diagram illustrating an example of a companion device that mayimplement one or more techniques of this disclosure. In one example,companion device 400 may be included as part of a dedicated deviceremote control. As illustrated in FIG. 4, companion device 400 includesmicroprocessor 402, transmitter/receiver 404, and user interface(s) 406.Microprocessor 402 may include a microprocessor programmed to executeone or more of the techniques described herein. In one example,microprocessor 402 may enable functional similar to that described abovewith respect to content selection application 309. Transmitter/receiver404 may include any combination of transmitter device and receiverdevice configured to enable communications with a computing device. Userinterface(s) 406 may include any of the example user interfacesdescribed herein. In one example, user interface(s) 406 may includepush-buttons.

As described above, each of computing device 200, companion device 300,and companion device 400 may include user interfaces. FIGS. 5-7A areconceptual diagrams illustrating respective examples of user interfacesthat may implement one or more techniques of this disclosure. It shouldbe noted that the techniques described herein are generally applicableregardless of the particular hardware and software implementations of adevice including an example user interface described herein. Forexample, when a user interface described herein is implemented as partof a dedicated remote control device, functions may be implemented usingapplication specific integrated circuits (ASICs) or the like. Further,when a user interface described herein is implemented as part of amobile computing device, functions may be implemented using applicationsavailable from an application distribution site, e.g., applicationdistribution site 122. Further, it should be noted that functionalitydescribed below with respect to a user interface of a companion devicemay be distributed between a companion device and a computing device incommunication with the companion device. For example, a companion devicemay generate electrical signals corresponding to a received user input.In some cases, a companion device may simply communicate the electricalsignals to a computing device and the computing device may interpret theelectrical signals in order to associate the electrical signals with aparticular command. In some cases, a companion device may interpret theelectrical signals and communicate a particular command to a computingdevice. Further, in the case where multiple levels of interpretation arerequired (e.g., interpretation of touch input to a motion event andinterpretation of motion events to a gesture) interpretations may bedistributed between a companion device and a computing device. That is,the techniques described herein may be generally applicable regardlessof how processing is distributed between a computing device and acompanion device.

FIG. 5 is a conceptual diagram illustrating an example of a userinterface that may implement one or more techniques of this disclosure.User interface 500 may generally correspond to a push-button remotecontroller user interface. User interface 500 may be included in acompanion device that includes a dedicated device remote control. Asdescribed in further detail below, the functionality of user interface500 may be implemented using other types of user interfaces. Forexample, functions achieved by activation of particular buttons of userinterface may be achieved through other types of user inputs. Forexample, in the case where a user interface includes a touchscreen,gesture recognition, and/or voice recognition, virtual buttons may bepresented on the touchscreen and functions achieved by activation ofbuttons on user interface 500 may be achieved through any and allcombinations of virtual button activation, motion gestures, and/or voicecommands.

User interface 500 includes basic television controls 510, playbackcontrols 520, and navigational controls 530. Basic television controls510 may be configured to enable a user to perform basic tuning andvolume control functions typically associated with viewing televisionprogramming. As illustrated in FIG. 5, basic television controls 510include numeric keypad 511, enter button 512, previous channel button513, channel change buttons 514, and volume control buttons 515. Numerickeypad 511, enter button 512, previous channel button 513, and channelchange buttons 514 may be configured to enable a user to access aparticular service, e.g., to tune to a particular analog and/or digitalchannel. In the case of a user tuning to a particular channel, upon auser entering a sequence of numbers using numeric keypad 511 and,optionally, additionally activating enter key 512, a tuner may tune to aspecified channel Upon activation of previous channel button 513, atuner may tune to a previously tuned channel. Activation of “+” and “−”channel buttons 514 may respectively cause a tuner to tune to therespective next channel in a sequence of channels. Activation of “+” and“−” volume control buttons 515 may respectively cause the output of anaudio system to be increased or decreased. It should be noted thatalthough the basic television controls 510 may be configured to enable auser to perform basic tuning and volume control functions associatedwith a television, in some examples, basic television controls 510 maybe used to perform other functions associated with a computing device.

Playback controls 520 may be configured to enable a user to control theplayback of and/or record multimedia content. For example, playbackcontrols 520 may enable a user to control the playback of a videooriginating from a media service provider site, an on demand engine,and/or a personal video recorder (PVR). As illustrated in FIG. 5,playback controls 520 include reverse playback button 521, normalplayback button 522, forward playback button 523, stop playback button524, pause playback button 525, and record button 526. Reverse playbackbutton 521 may enable to a user to navigate to a previous point in amultimedia sequence. Upon activation, normal playback button 522 maycause normal playback of an item of multimedia content to begin orresume. Forward playback button 523 may enable a user to navigate to afuture point in a multimedia sequence. Upon activation, stop playbackbutton 524 may cause the playback of an item of multimedia content tocease. Upon activation, pause playback button 525 may cause the playbackof an item of multimedia content to be paused. Record button 526 mayenable a user to cause an item of multimedia content to be stored to astorage device. In one example, record button 526 may enable a user torecord content to a storage device. It should be noted that althoughplayback controls 520 may be configured to enable a user to control theplayback of and/or record multimedia content, in some examples playbackcontrols 520 may be used to perform other functions associated with acomputing device.

As described above, devices with digital media playback capabilities,including, for example, televisions, set top boxes, and mobile devices,may be configured to provide users thereof with graphical userinterfaces that enable the selection of content. Navigational controls530 may be configured to enable a user to navigate graphical userinterfaces and select content using a graphical user interface. In oneexample, navigational controls 530 may be configured to enable a user tonavigate graphical user interfaces and access items of content accordingto the techniques described herein.

In the example illustrated in FIG. 5, navigational controls 530 includenavigational arrow buttons 531, select button 532, information button533, menu button 534, guide button 535, back button 536, and exit button537. Navigational arrow buttons 531 may be configured to move theposition of a cursor associated with a graphical user interface and/orchange the selection of an item included in a graphical user interface.Select button 532 may enable a user to further select an icon. In oneexample, consecutive activations of select button 532 may causerespective levels of selection to occur. Information button 533 may beconfigured to cause additional information associated with an item ofcontent of to be displayed. For example, when an icon representing anitem of content is initially selected, activation of information button533 may cause information associated with the content (e.g., cast andcrew information) to be displayed.

Menu button 534, guide button 535, back button 536, and exit button 537may be configured to enable a user to cause different graphical userinterfaces to be presented. Upon activation, menu button 534 may cause agraphical user interface including a high level menu to be displayed. Inone example, a high level menu may include a menu that enables a user tochange settings associated with the operation of a computing device. Inone example, a high-level menu may include a menu that enables a user toselect a user profile (e.g., a log-in graphical user interface). Uponactivation, guide button 535 may be configured to provide a graphicaluser interface that enables a user to select content. In one example,upon activation of guide button 535, a graphical user interfaceincluding a grid guide may be presented to a user. Back button 536 maybe configured to enable a user to return to a previous graphical userinterface. Exit button 537 may be configured to enable a user to returnto a full screen viewing mode. For example, when a graphical userinterface is displayed, upon activation of exit button 537, thegraphical user interface may “disappear” and a full screen contentviewing mode may be presented to a user.

FIG. 6 is a conceptual diagram illustrating an example of a userinterface that may implement one or more techniques of this disclosure.User interface 600 may generally correspond to a mobile computing device(e.g., a smartphone or a tablet computing device) user interface. In theexample illustrated in FIG. 6, user interface device 600 includestouchscreen display 602 and button 604. It should be noted that in someexamples, user interface 600 may include a microphone and/or motionsensors and may be configured to receive voice and motion input. In someexamples, button 604 may be referred to as a home button. Touchscreendisplay 602 may include any display device configured to displaygraphics and receive a user touch input. For example, touchscreendisplay 602 may include an LCD display, an OLED display, or any othertype of display device capable of presenting visual data to a user, anda capacitive touch sensor device, a resistive touch sensor device, orany other type of device capable of receiving user touch events.Further, it should be noted that touchscreen 602 may be configured toreceive user touch events directly or indirectly (e.g., using a stylus).Touchscreen display 602 may be configured to display icons representingitems of content. As further described in detail below, touchscreendisplay 602 may be configured to enable a user to perform multiple typesof activations with respect to a region of touchscreen display 602,where a region may correspond to a displayed graphic (e.g., an icon).That is, touchscreen display 602 may be configured to receive one ormore of the following user touch inputs: a signal tap, a double-tap, apress of a specified duration (e.g., a long press), a multi-point touchinput (e.g., a pinch gesture), and complex touch gestures (e.g., dragand drop gesture, character writing gestures, and swiping gestures).Further, in some examples, touchscreen display 602 may be pressuresensitive and cause different types of activations to occur based on theamount of pressure a user applies to touchscreen display 602 (i.e., how“hard” a user presses). Button 604 may cause difference graphical userinterfaces to be displayed on touchscreen display 602. In the exampleillustrated in FIG. 6, one or more activations of button 604 may causeuser touchscreen display 602 to display a home screen. Further, button604 may have different functionality based on a graphical user interfacedisplayed on touchscreen display 602.

In the example illustrated in FIG. 6, touchscreen display 602 displaysvirtual buttons 606 and a graphical user interface 608 within respectiveregions. Virtual buttons 606 may replicate push-buttons, including, forexample, one or more of the buttons described above with respect to FIG.5. A user may activate a virtual button by activating a correspondingarea on touchscreen display 602. It should be noted that in someinstances virtual buttons may be referred to as soft keys. In theexample illustrated in FIG. 6, virtual buttons 606 replicate a numerickeypad, an enter button, a previous channel button buttons, and volumecontrol buttons. Graphical user interface 608 may include one or morecomponents of a graphical user interface described herein. For example,graphical user interface 608 may include icons representing an item ofcontent, as described in detail below. In the example illustrated inFIG. 6, graphical user interface 608 includes a voice activatedsearching graphical user interface. For example, upon a user saying thename of an actress and graphical user interface 608 may display a listof movies associated with the actress.

FIG. 7A is a conceptual diagram illustrating an example of a userinterface that may implement one or more techniques of this disclosure.In the example illustrated in FIG. 7A, user interface 700 includesstand-by button 702, volume control buttons 704, and touch interface706. In one example, user interface 700 may be implemented as part ofcompanion device 790 illustrated in FIGS. 7B-7C. Companion device 790may, in some examples, be referred to as a dynamic remote controller.Stand-by button 702 may be configured such that upon activation,components of a companion device including user interface 700 arepowered up and/or powered down. Further, upon activation of stand-bybutton 702 components of a computing device may be powered up and/orpowered down. Volume control buttons 704 upon activation, mayrespectively cause the output of an audio system to be increased ordecreased. Touch interface 706 may include any device and/or combinationof devices configured to dynamically display icons, and the like, andreceive touch input.

As illustrated in FIGS. 7B-7C, companion device 790 includes top coverassembly 760 and bottom cover assembly 770. In the example illustratedin FIGS. 7B-7C, battery 782, springs 784 a-784 b, microphone 785, andswitch cover 786 are disposed between top cover assembly 760 and bottomcover assembly 770 when companion device 790 is assembled. Companiondevice 790 is assembled such that top cover assembly 760 is hinged withrespect to bottom cover assembly 770, such that, springs 784 a-784 b maybe compressed. That is, a user holding companion device 790 may presstop cover assembly 760 and cause springs 784 a-784 b to becomecompressed. For example, a user may hold bottom cover assembly 770 in apalm and press on top cover assembly 760 to cause springs 784 a-784 b tobecome compressed. Switch cover 786 covers switch 787, included in topcover assembly 760, as illustrated in FIG. 7C, such that the compressionof springs 784 a-784 b may cause switch 787 to be activated by bottomcover assembly 770. Thus, a user may activate switch 787 by pressing topcover assembly 760. Such an activation may be referred to as a clickactivation and may be accompanied by a mechanical click sound. It shouldbe noted that switch cover 786 may be configured to provide a highquality (e.g., loud and distinct) audible “click” sound.

Referring to FIG. 7A, touch interface 706 dynamically displays icons,and the like. Dynamically displayed icons may be referred to as virtualor soft buttons or keys. Touch interface 706 or regions thereof mayinclude a touchscreen display as described above, e.g., an LCD display,an OLED display, etc. A user may activate a displayed icon button byactivating a corresponding area on touch interface 706. In the examplewhere user interface 700 is implemented as part of computing device 790,touch interface 706 may be implemented as part of top cover assembly760. Referring to FIG. 7C, top cover assembly 760 includes top cover762, touch panel 764, display 766, upper structure 768, and circuitboard 769. Top cover 762 may include a solid translucent material (e.g.,a clear plastic, glass, including Gorilla® glass, developed by Corning,Inc., or the like) having zero or more protrusions (e.g., protrusions728, 743, and 744). As described in further detail below, protrusionsmay be arranged on the surface of top cover 762 to provide hapticfeedback (e.g., enable a user to locate the position of an icon). Touchpanel 764 may be any device configured to detect touch events and togenerate electric signals in accordance with detected touch events.Touch panel 764 may include a capacitive touch sensor device, aresistive touch sensor device, or any other type of device capable ofreceiving user touch events. In one example, touch events may include anaction down event (e.g., a user touching touch panel 764) and action upevent (e.g., a user lifting a finger) and each action down event andaction up event may be associated with a set of coordinates indicating aposition on touch panel 764. Display 766 may include any display deviceconfigured to display graphics. In one example, display 766 may includea flexible display device. In one example, display 766 may include anelectrophoretic display (EPD) device, which may be referred to as anelectronic paper display or electronic ink device. Display 766 mayinclude a full-color display or a monochromatic display.

Upper structure 768 may support top cover 762, touch panel 764, display766, and circuit board 769. That is, top cover 762, touch panel 764,display 766, and circuit board 769 may be mounted to upper structure768. Further, upper structure 768 includes a hinge structure enablingtop cover assembly 760 and bottom cover assembly 770 to be hinged asdescribed above. Circuit board 769 may include electronic components ofcompanion device 790. Electronic components may include any combinationof logical components, e.g., components described above with respect toFIG. 3 and FIG. 4, configured to enable the functionality describedherein.

Referring to FIG. 7C, bottom cover assembly 770 includes middlestructure 772, speaker structure 774, and bottom cover 776. Bottom cover776 and top cover 762 enclose components of companion device 790. Bottomcover 776 may be composed of plastic, metal, or any other suitablematerial. Middle structure 772 supports springs 784 a-784 b, microphone785, battery 782 and speaker structure 774. Microphone 785 may beconfigured to receive audio input (e.g., user voice commands) In oneexample, user interface 700 may be configured to receive audio inputthrough microphone 785 upon switch 787 being depressed. That is, a usermay press and hold top cover assembly 760 in order to provide a verbalcommand (e.g., “Search for Walking Dead”). Battery 782 may powercompanion device 790 and in one example may include a rechargeablebattery (e.g., lithium-ion, nickel-cadmium, etc.). Speaker structure 774includes one or more speakers operably connected to the circuit board.Thus, companion device 790 may be configured to output audio through oneor more speakers mounted to speaker structure 774. It should be notedthat in some examples, companion device 790 may additionally includemotion sensors (e.g., accelerometers) and may be configured to receivemotion input in addition to audio input.

In the example illustrated in FIG. 7A, touch interface 706 includesstatus area 710, dynamic button area 720, navigational area 740, andshort-cut icon area 750. Status area 710 may be configured to displaystatus information associated with a companion device and/or a computingdevice. Further, status area 710 may be configured to enable a user tochange a status and/or settings associated with a companion deviceand/or a computing device. In the example illustrated in FIG. 7A, statusarea 710 includes settings icon 712, user identifier 714, and powerindicator icon 716. Settings icon 712 may be configured to enable a userto change a setting associated with a companion device or a computingdevice. In one example, upon activation, settings icon 712 may cause agraphical user interface to be presented on a display associated withcomputing device that enables a user to change settings associated witha computing device (e.g., settings related to a time zone, a language,etc.). Further, in one example, upon activation, settings icon 712 maycause a graphical user interface to be presented on a display associatedwith computing device or on touch interface 706 that enables a user tochange a setting associated with a companion device (e.g., settingsrelated to sensitivity of touch interface 706, etc.).

User identifier 714 may be configured to display a user currentlyassociated with a computing device and/or a companion device. Forexample, if a computing device is running an application associated witha media streaming service, user identifier 714 may display an identifierassociated with a user currently logged-in to the application. Further,in one example, user identifier 714 may display an identifier associatedwith a user currently operating a computing device through a companiondevice including user interface 700. For example, a computing deviceand/or a companion device may support multiple users and may includeprofiles including information associated with each respective user. Insome examples, information included in a profile may include one or moreof a user's favorite media services (e.g., television channels,streaming services, etc.), an indication of whether a user is right handdominant or left hand dominant, and other user customizable settings.Further, in some examples, a profile may include consumption andbehavior information. In one example, consumption may include content auser has accessed or is accessing. In one example, behavior may includeuser usage information such as, for example, how fast the user changeschannels, how often the user skips commercials, how frequently a useraccesses content through a computing device, how frequently a useraccessing a particular graphical user interface, etc.

In some examples, information included in a profile may enable dynamicfunctionality of user interface 700. For example, as described in detailbelow, icons displayed in short-cut icon area 750 may be based on auser's preferred media services. Further, as described in detail below,user input gestures with respect to navigational area 740 may be basedon whether a user is right hand dominant or left hand dominant. In oneexample, upon activation, user identifier 714 may cause a graphical userinterface to be presented on a display associated with a computingdevice and/or a display associated with a companion device that enablesa user to change a corresponding user identifier (e.g., log-in to anapplication, a computing device, and/or a companion device as anotheruser). Power indicator icon 716 may be configured to display theremaining energy of batteries powering a companion device (e.g., battery782). In one example, power indicator icon 716 may provide a visualwarning when the remaining energy is at a low level (e.g., blink, flash,etc.). It should be noted that in one example, icons included in statusarea 710 may remain static regardless of the application running on acomputing device.

Dynamic button area 720 may be configured to enable a user to causefunctionality associated a computing device to occur and/or causefunctions associated with an application currently running on acomputing device to be performed. Further, in the example illustrated inFIG. 7A, dynamic button area 720 includes respective protrusions 728positioned such that each protrusion may correspond to the location of avirtual button. Virtual buttons may enable any number of functionsassociated with the operation of a computing device and applicationsrunning thereon. For example, in the case where a computing deviceincludes a set-top box or a dedicated media streaming device capable ofrunning a plurality of dedicated applications and/or accessing items ofcontent through a plurality of dedicated media services, dynamic buttonarea 720 may display virtual buttons associated with a high-level devicemenu in order to enable application selection. Further, virtual buttonsdisplayed in dynamic button area 720 may be application specific and maychange based on an application currently running on a computing device.Further, it should be noted that the presentation of a particularvirtual button displayed in dynamic button area 720 may change based onthe operating state of an application running on a computing device. Forexample, the appearance of a virtual button enabling a function to betoggled (play/pause, mute/unmute, etc.) may change based on the currentsetting of a function. In this manner, virtual buttons displayed indynamic button area 720 may change based on a context and/or asub-context.

In the example illustrated in FIG. 7A, designated button area 720includes virtual buttons associated with high level computing devicefunctions, search icon 722, save icon 724, and menu icon 726 and virtualbuttons 730 associated with a particular application running on acomputing device (a media playback application in the exampleillustrated in FIG. 7A). Search icon 722 may be configured to enable auser to perform a high-level search associated with a computing device.In one example, upon activation, search icon 722 may cause a graphicaluser interface to be displayed that enables a user to search theavailability and accessibility of particular items of content acrossmultiple media service provider sites or services. For example, agraphical user interface may be presented that enables a user to searchfor available items content associated with a particular actor and mayprovide aggregated search results from multiple media service providersites or services (e.g., television service, on demand service,streaming services, etc.). In one example, upon activation, search icon722 may cause a graphical user interface to be displayed that enables auser to search for applications available through an applicationdistribution site. Graphical user interface 608 described above withrespect to FIG. 6 illustrates an example of a graphical user interfaceenables a user to search the availability and accessibility ofparticular items of content across multiple media service provider sitesor services.

Save icon 724 may be configured to enable a user to cause an item ofcontent to be accessed through a particular graphical user interface ata future point in time. For example, upon activation, save icon 724 maybe configured to add items of content to a user's so-called medialibrary. For example, a user may cause a subset of available items ofcontent be accessible through a graphical user interface associated witha PVR menu or the like. The graphical user interface may be referred toas a “My TV” or a “My Recordings” menu. In one example, upon activation,save icon 724 may cause a graphical user interface to be displayed thatenables a user to download particular items of content for storage on alocal storage device (e.g., saved to a hard disk drive of a PVR).Further, in one example, upon activation, save icon 724 may store apointer to a server, or the like, to enable a user to access an item ofcontent from a server. For example, if a tile corresponding to a videoon demand item of content is active in a graphical user interface whensave icon 724 is activated, a pointer to the item of content on a mediaserver may be saved. It should be noted that in some examples, whetheran item of content is stored locally or whether a pointer is stored maybe transparent to the user. In some cases, segments of an item ofcontent (e.g., the first 10 minutes of a movie) may be stored locallyand segments of the item of content (e.g., the subsequent portion of themovie) may be retrieved from a server. Menu icon 726 may be configuredto cause a graphical user interface including a high level menu to bedisplayed. In one example, upon activation, menu icon 726 may beconfigured to cause graphical user interface 1000 described below withrespect to FIG. 12 to be displayed. It should be noted that in someexamples, menu icon 726 may have similar functionality as back button536.

In the example illustrated in FIG. 7A, virtual buttons 730 areassociated with media playback control functions and include a mutebutton (i.e., upon activation, causes volume to be muted/unmuted), aclosed-captioning button (i.e., upon activation, causes closed-captiontext to be displayed/not displayed), a presentation window button (i.e.,upon activation, causes a video presentation window to be displayed in afull-screen mode or restored down to a smaller presentation window),reverse playback and forward playback buttons (i.e., upon activation,causes a video presentation to be reversed or advanced), and play orpause button (i.e., upon activation, causes a video presentation topause or resume). It should be noted that although virtual buttons 730are described with respect to a video playback application in theexample illustrated in FIG. 7A, virtual buttons 730 may include buttonsassociated with any type of application. For example, in the case wherean application includes an application enabling voice and/or video callsto occur, virtual buttons may include a button that enables a user tocause video to be displayed (e.g., a video camera icon), a button thatenables a user to end a call (e.g., a telephone handset icon), and thelike. In other examples, other types of buttons may be displayed basedon the type of application.

Navigational area 740 may be configured to receive user touch inputsincluding gestures. Functionality associated with a computing deviceand/or an application may occur based on received user touch inputs. Asdescribed above, user touch inputs may include a single-tap, adouble-tap, a press of a specified duration, a multi-point touch input,and complex touch gestures. As further described above, touch panel 764may be configured to detect touch events (e.g., action down events andaction up events) and generate a set of coordinates indicating aposition on touch panel 764 corresponding to an action. That is, a touchpanel 764 may sample electrical signals that provide information withrespect to the location of a user's finger on touch panel 764 (i.e.,where touch panel 764 is activated). A touch event handler may beconfigured to receive one or more touch events during a time period anddetermine whether the one or more touch events correspond to aparticular user touch input. In one example, a touch event handler mayreceive a plurality of action down events during a time period anddetermine that a motion event having a particular velocity has occurredand/or determine that the motion event corresponds to a particulargesture. It should be noted that interpreting whether touch eventscorrespond to a motion event and whether motion events correspond to agesture may be determined by a companion device and/or a computingdevice. For example, a companion device may send any combination oftouch events (e.g., an action, a set of coordinates, and a time), motionevents, and/or an indication of a gesture (e.g., a double-tap) to acomputing device. As described above, the techniques described hereinmay be generally applicable regardless of how processing (e.g., touchevent handling) is distributed between a computing device and acompanion device.

Further, as described above, companion device 790 is configured toreceive a click activation, which may include a single or multiple clickactivations. In the example illustrated in FIG. 7A, navigational area740 includes visual and haptic feedback that may assist a user inproviding gestures. In the example illustrated in FIG. 7A, navigationalarea 740 includes displayed OK button 742 and corresponding protrusion743, and protrusions 744. In one example, OK button 742 may, uponactivation, provide functionality similar to select button 532 describedabove with respect to FIG. 5. In one example, OK button 742 may beactivated upon a user tapping on a region of navigational area 740associated with OK button 742 and/or a user performing a clickactivation while activating touch interface 706 at the regioncorresponding to OK button 742. As described in detail below, in someexamples, activation of OK button 742 based on a tap and activation ofOK button 742 based on a click may cause different respectivefunctionality to occur. Protrusions 744 may be configured to providehaptic feedback to a user of user interface 700. That is, a user may beable to feel protrusions 744 to determine the position of the user'sfinger with respect to navigational area 740. The position of a user'sfinger (e.g., where a user starts or terminates a gesture) may enable aparticular type of gesture to cause distinct functions to occur withrespect to a computing device and/or an application running on acomputing device. It should be noted that although protrusions areillustrated as dots or lines in the example of FIG. 7A, in someexamples, protrusions may include characters and the like. For example,protrusions corresponding to OK button 742 may include a raised O and K.Further, it should be noted that in some examples touch interface 706may include indentations in addition to or as an alternative toprotrusions. Further, it should be noted that in some examples touchinterface 706 may include fewer, including none, of the protrusionsillustrated in the example illustrated in FIG. 7A.

FIGS. 8A-8D are conceptual diagrams illustrating examples of user inputsthat may be received by the example user interface illustrated in FIG.7A according to one or more techniques of this disclosure. In theexamples illustrated in FIG. 8A and FIG. 8B, and other examplesdescribed below, the “X” indicates an initial location where a useractivates navigational area 740 (e.g., where a user initially presseswith a finger or stylus) and the directional arrows indicate movementwhile navigational area 740 is active (e.g., a user sliding a fingeracross the surface). It should be noted that in some examples the “X”illustrated with respect to navigational area 740 may indicate aninitial touch location that does not include a corresponding clickactivation. In contrast, the “[X]” illustrated in FIG. 8C and FIG. 8Dmay indicate a touch location and a corresponding click activation,i.e., a user pressing navigational area 740 and causing switch 787 to beactivated.

As described above, a set of touch events may correspond to one or moremotion events and one or more motion events may correspond to a gesture.Table 1 provides an example of a set of touch events that correspond tothe example user input illustrated in FIG. 8A. In the exampleillustrated in Table 1, the x-coordinate and y-coordinate have a rangeof 0 to 100 and the origin (0, 0) is located at the top-left corner.

TABLE 1 Time Touch Event X-coordinate Y-coordinate 0 Action Down 75 50t₁ Action Down 60 50 t₂ Action Down 40 50 t₃ Action Up 25 50

In the example illustrated in Table 1, a user touches navigational area740 with a finger at an initial touch location (75,50), slides thefinger to the left while maintaining the contact with navigational area740, and lifts a finger at a final touch location (25,50). The data inTable 1 may be interpreted as a motion event (i.e., a left motion event)having a distance (i.e., 50), and having a speed (i.e., 50/t₃). Itshould be noted that the data in Table 1 may, in some cases, beinterpreted as two or more motion events. Further, the data in Table 1may be interpreted as a gesture. For example, a particular gesture mayrequire a minimum distance and a minimum speed. As described above,interpreting whether touch events correspond to a motion event andwhether motion events correspond to a gesture may be determined by acompanion device and/or a computing device. In one example, a companiondevice may receive touch events at one sampling rate, filter the touchevents (e.g., average coordinate values of multiple samples), and send areduced set of touch events to a computing device. Thus, with respect tothe example illustrated in Table 1, a companion device may send the datain Table 1 to a computing device, and a computing device may interpretmotion events and gestures. In some examples, the level of filtering oftouch event data that a companion device performs prior to sending touchevent data to a computing device may be based on an applicationcurrently running on a computer device and/or a graphical user interfacecurrently displayed on a computing device. That is, some applicationsmay be more sensitivity to touch input than others and as such mayrequire more touch event data. Other applications running on a computingdevice may require less than all of the touch event data that may begenerated by a companion device.

In some examples, the inputs illustrated in FIG. 8A and FIG. 8B may bereferred to as a swipe or a slide gesture. In the example illustrated inFIG. 8A, the initial touch location is within the area enclosed byprotrusions 744. As such, in some examples, the gesture illustrated inFIG. 8A may be referred to as an inside swipe gesture. In the exampleillustrated in FIG. 8B, the initial touch location is outside of thearea enclosed by protrusions 744. As such, in some examples, the gestureillustrated in FIG. 8B may be referred to as an outside swipe gesture.As described in further detail below, based on whether an inside swipegesture or an outside swipe gesture occurs, different functionality mayoccur. It should be noted that although FIG. 8A and FIG. 8B illustratehorizontal swipes moving to the left, inside and outside swipes may bedefined for any direction of movement (e.g., vertical, diagonal, etc.).Further, in some examples, inside and outside distinctions of gesturesmay be defined for gestures including multi-point touch inputs (e.g.,inside and outside pinch gestures may be defined). Further, in someexamples, inside and outside distinctions of touch points may be definedfor both the vertical and horizontal axis (e.g., corner touch points,etc.). In some examples, the gestures illustrated in FIG. 8A and FIG. 8Bmay more specifically be referred to as horizontal (inside or outside)swipes or as horizontal left (inside or outside) swipes. In this manner,computing device 200 and a companion device including user interface 700are configured to support multi-level user activations or gestures. Itshould be noted that in some examples user interface 600 may beconfigured to support multi-level activations.

As described above, OK button 742 may be activated upon a userperforming a click activation while activating touch interface 706 atthe region corresponding to OK button 742. FIG. 8C illustrates anexample of a user performing a click activation while activating touchinterface 706 at the region corresponding to OK button 742. As describedabove, such an activation may provide functionality similar to selectbutton 532. In one example, the activation illustrated in FIG. 8C may bereferred to as an OK click activation. It should be noted that OK clickactivations may include multiple click activations (e.g., double-clickactivations). Further, a user causing switch 787 to be activated whileactivating navigational area 740 near one of the upper, lower, left, orright protrusion of protrusions 744 may provide functionality similar tonavigational arrows 531. In one example, these activations may bereferred to as directional click activations. FIG. 8D illustrates anexample where a user performs a right directional click activation byactivating navigational area 740 near the right most protrusion andcausing switch 787 to be activated. In this manner, user interface 700and navigational area 740 may be configured be enable directionalnavigation (e.g., directional arrow based navigation) and gesture basednavigation.

Referring again to FIG. 7A, short-cut icon area 750 may be configured tofacilitate functionality with respect to a particular applicationcurrently running on a computing device and/or a particular usercurrently operating a computing device. In the example illustrated inFIG. 7A, short-cut icon area 750 includes application specific icons752. It should be noted that in the example illustrated in FIG. 7A, incontrast to dynamic button area 720, short-cut icon area 750 does notinclude protrusions. In this manner, short-cut icon area 750 may provideincreased flexibility with respect to the types of icons that may bedisplayed. For example, short-cut icon area 750 may display one largeicon, which upon activation causes an advertisement to be presented. Asdescribed above, in one example, a content selection application ofrunning on a companion device may be configured to receive data from acomputing device and parse the data in order to determine a contextand/or a sub-context. A context may identify an application currentlyrunning on a computing device and a sub-context may identify aparticular aspect of an application running on a computing device.Application specific icons 752 may be based on a context and/or asub-context.

In the example illustrated in FIG. 7A, application specific icons 752correspond to icons associated with a television service application. Inthe example illustrated in FIG. 7A, application specific icons 752represent television channels that, upon activation, may cause a tunerof a computing device to tune to the particular television channel (orcause a computing device to access a particular media stream). It shouldbe noted that in some examples, application specific icons 752 may beactivated upon a user providing a tap activation and in some examplesapplication specific icons 752 may be activated upon a user providing aclick activation. In the case where application specific icons 752represent television channels, television channels may correspond torecently viewed channels and/or a set of channels determined byinformation included in a user's profile. Further, in one example,television channels represented by application specific icons 752 maymirror channels displayed on a graphical user interface. For example,referring to FIG. 14A, channels AMC, FOX, NBC, CBS, BBC, Showtime, andHBO are displayed on the display 250 of a computing device 200 as partof a graphical user interface. In this case, application specific icons752 may include icons representing AMC, FOX, NBC, CBS, BBC, Showtime,and HBO. In a similar manner, when a graphical user interface associatedwith an on demand content application is presented on a display,specific icons 752 may represent icons corresponding items of content.For example, application specific icons 752 may represent the moviesillustrated in the example of FIG. 18B, when graphical user interface1100 is presented on a display.

In this manner, user interface 700 is configured to dynamically presenticons which may be activated by a user and receive user input, includingmulti-level activations. Based on received user inputs provided to acompanion device, a computing device may cause changes to occur withrespect to an item of content and/or graphical user interfaces presentedon a display. It should be noted that although user interface 700 isdescribed in the examples above as displaying icons, these examplesshould not be construed as limiting the functionality of user interface700. In other examples user interface 700 may display motion basedgraphics, animations, video, and the like and may enable complex userinteractions (e.g., so-called second screen applications). For example,user interface 700 may enable a user to play a game (e.g., a trivia gameor a video game) displayed in short-cut icon area 750. Further, userinterface 700 may display information associated with an item of contentrendered on a display associated with a computing device (e.g., a plotsynopsis of a movie).

As described above, navigational area 740 may be configured to receiveuser touch inputs including gestures and functionality associated with acomputing device and/or an application may occur based on the receiveduser touch inputs. Functionality associated with a computing deviceand/or an application may include functional provided in conjunctionwith a graphical user interface. FIGS. 9A-9D, FIG. 12, FIGS. 14A-14C,FIGS. 16A-16F, and FIGS. 18A-18B are conceptual diagrams illustratingexamples of graphical user interfaces that may implement one or moretechniques of this disclosure. As described in further detail below,navigational area 740 may be configured to receive user touch inputsincluding gestures, taps and click activations, and computing device 200may cause functionality associated with the graphical user interfacesillustrated in FIGS. 9A-9D, FIG. 12, FIGS. 14A-14C, FIGS. 16A-16F, andFIGS. 18A-18B to occur, including transitioning from the respectivegraphical user interfaces. It should be noted that although the examplegraphical user interfaces illustrated in FIGS. 9A-9D, FIG. 12, FIGS.14A-14C, FIGS. 16A-16F, and FIGS. 18A-18B are described with respect touser interface 700 and companion device 790, the graphical userinterfaces may be generally applicable to other user interfaces andcompanion devices. FIGS. 19A-19E is a flowchart illustrating an exampleof enabling a user to select an item of content using the examplegraphical user interfaces illustrated in FIGS. 9A-9D, FIG. 12, FIGS.14A-14C, FIGS. 16A-16F, and FIGS. 18A-18B.

FIGS. 9A-9D illustrate an example where a companion device may change anitem of content presented on a display based on input received through auser interface. In some examples, the example graphical user interfaceillustrated in FIGS. 9A-9D may correspond to a television viewingapplication and, in some cases, the transition illustrated in FIGS.9A-9D may generally be referred to as a channel change transition. FIG.10 is a conceptual diagram further illustrating the transitionillustrated in FIGS. 9A-9D and a corresponding example user inputreceived by an example user interface. It should be noted that althoughthe example transition illustrated in FIGS. 9A-9D is described withrespect to user interface 700, in other examples, input received throughother example users interfaces (e.g., user interface 500 and userinterface 600) may cause the transition to occur.

As illustrated in FIGS. 9A-9D graphical user interface 900 includeswindow 902, window 904, source identifier 906, item of contentidentifier 908, and progress bar 910. Window 902 includes a presentationarea associated with a currently selected item of content (e.g., atelevision channel that a tuner of a computing device is currently tunedto). Window 904 includes a presentation area associated with a potentialsubsequently selected item of content (e.g., an adjacent televisionchannel in a television channel listing). Referring to FIG. 9A,graphical user interface 900 displays a full screen video presentationfor a currently selected item of content associated with window 902.Referring to FIG. 9D, graphical user interface 900 displays a fullscreen presentation for a subsequent selected item of content associatedwith window 904. FIGS. 9B and 9C illustrate a transition betweengraphical user interface 900 as illustrated in FIG. 9A and FIG. 9D.

As illustrated in FIG. 9B and FIG. 9C, graphical user interface 900displays window 904 in such a manner that it appears to overlap window902. As described below with respect to FIG. 10, the manner in whichwindow 904 overlaps window 902 may be based on user input receivedthrough a user interface. With respect to the example where graphicaluser interface 900 corresponds to a television viewing application, whena user wishes to change a full screen video presentation from an item ofcontent associated with window 902 to an item of content associated withwindow 904, a video presentation for an item of content associated withwindow 904 may not be immediately available. That is, for example, foran over-the-air or a cable television source there may be a delay withrespect to a tuner (e.g., an ATSC or DVB tuner) acquiring a channel.Further, in the example where a television service includes a so-calledstreaming or an over-the-top (OTT) television service (e.g., HTTP LiveStreaming), a delay may occur based on the time it takes for a computingdevice to establish a session with a host server and/or download mediasegment files. The example illustrated in FIGS. 9A-9D may illustrate anexample where a video presentation for an item of content associatedwith window 904 is not immediately available. Further, the exampleillustrated in FIGS. 9A-9D may illustrate an example where a computingdevice tunes or attempts to access a stream upon a user completing asufficient portion of a gesture.

Referring to the example illustrated in FIGS. 9B-9D window 904 displaysan image associated with an item of content (i.e., an still imageassociated with The Walking Dead) or a video (e.g., a video of an eventin progress) based on availability of video and/or computing resourcesand information that enables a user to identify an item of contentassociated with window. Source identifier 906 identifies a sourceassociated with an item of content (e.g., a logo identifying atelevision network). An item of content identifier 908 includes textidentifying an item of content. Progress bar 910 illustrates theprogress of the presentation of an item of content (e.g., the currentplayback point of a television program). In one example, an imageassociated with an item of content may be referred to as an image plateand source identifier 906, item of content identifier 908, and progressbar 910 may be referred to as an information group. An image plate andan information group may collectively be referred to as graphicsassociated with an item of content.

As illustrated in FIG. 9B and FIG. 9C, window 904 is sized such that itspans the height of display 250 and each of source identifier 906, itemof content identifier 908, and progress bar 910 are proportional in sizeto the area of window 904 on display 250. That is, each of sourceidentifier 906, item of content identifier 908, and progress bar 910increase in size as window 904 covers more of window 902. Further, asillustrated in FIG. 9D, each of source identifier 906, item of contentidentifier 908, and progress bar 910 increase to a maximum size and stopat the center of display whereas the image associated with the item ofcontent may cover the full area of display 250. Such a transition may bevisually appealing to a user of a computing device. As described indetail below, a graphical processing unit (e.g. graphics processing unit230) may be configured to enable such transitions to occur based on userinput received through a user interface. As further described in detailbelow, graphics associated with items of content may be cached based onthe likelihood that a user will attempt to access a particular item ofcontent at during a time period.

FIG. 10 illustrates an example where a user performs a horizontal insideswipe gesture, as described above with respect to FIG. 8A, in order tocause the transition illustrated in FIGS. 9A-9D to occur. In the exampleillustrated in FIG. 10, for each subsequent point in time, Time₀, Time₁,and Time₂, graphical user interface 900 as displayed on display 250 anda user gesture as received by navigational area 740 are illustrated. AtTime₀, graphical user interface 900 displays a full-screen videopresentation of the item of content associated with window 902 and auser initiates an inside swipe gesture by activating navigational area740 within the area defined by protrusions 744. At Time₁ and Time₂, asthe user slides a finger to the left on navigational area 740, window904 displaying the image plate “slides” over window 902 and sourceidentifier 906 increases in size. The movement of window 904 on display250 may be synchronized with the movement of a user's finger onnavigational area 740. That is, a relationship between the movement of auser's finger on navigational area 740 (i.e., touch event data) andposition of window 904 and/or size of source identifier 906 is definedsuch that the window appears to move on display in conjunction withswipe gesture.

Referring again to FIG. 10, the gesture may be interpreted by acompanion device and/or a computing device based on a starting point,transition distance, and a threshold. As described above, the startingpoint may be used to distinguish between an inside swipe gesture and anoutside swipe gesture. The transition distance may correspond to adistance where motion of a user's finger causes a visual transition tooccur. It should be noted that a transition distance may include aminimum distance required to initiate a transition Minimum distances maybe used to distinguish gestures from inadvertent touch events. Forexample, a user's finger may be required to travel a distance of 15% ofthe width of navigational area 740 before window 904 appears on display250. In the example illustrated in FIG. 10, the threshold may be used todetermine whether, upon a user deactivating navigational area 740 (e.g.,lifting a finger off of navigational area 740, i.e.,), graphical userinterface 900 displays a full screen presentation of window 902 or afull screen presentation of window 904. That is, a user may cause aportion of window 904 to be displayed in order to identify and/orpreview an item of content associated with window 904 (e.g., when videois available) and if a user does not wish to access the item of contentassociated with window 904, the user may lift the finger fromnavigational area 740 to cause the display to return to the full screenviewing mode of the currently selected item of content. As describedbelow, the threshold may be based on equations defining window movement.In one example, window 904 may include a message indicating that thechannel is currently at a commercial break. For example, computingdevice 200 may receive data or flags indicating that the channel is acommercial break. In some cases, causing a portion of window 904 to bedisplayed may be referred to as a peek view. In some examples, upon theuser not exceeding the threshold and lifting a finger from navigationalarea 740, window 904 may rapidly move to the right (i.e., “snap back”).

In some examples, upon the user exceeding the threshold and lifting afinger, window 904 may move to the left to cause graphical userinterface 900 as illustrated in FIG. 9D to be displayed. In this case,in one example, graphical user interface 900 as illustrated in FIG. 9Dwill transition to a full screen video presentation (e.g., fade out froman image to a video presentation) once the video associated when theitem of content is available (e.g., after tuning occurs or after a mediasegment is downloaded). It should be noted that in some examples, inorder to conserve or optimize resources of a computing device, it may bedesirable to initiate tuning based on the movement of a user's finger onnavigational area 740. That is, in one example, resources of a computingdevice may be optimized by initiating tuning upon a user's fingerpassing or being within a predetermined distance of a threshold.Further, it should be noted that a threshold may be defined with respectto an absolute point on navigational area 740 (e.g., the center ofnavigation area 740), an absolute distance traveled by a user input(e.g., one centimeter from a starting point), a relative distance (e.g.,50% of the distance between a starting point and an edge of navigationalarea 740), and/or the speed of the motion of the user input. In oneexample, user interface 700 may be configured such that a user mayinitiate a channel change transition by activating navigational area 740at any point within protrusions 744 and moving a finger a distance ofapproximately 10%-20% (e.g., 15%) of the width of navigational area 740(i.e., the minimum distance). In this example, window 904 may bedisplayed based on the continued motion of the user's finger. Further,in this example the threshold may be a distance of approximately 35%-60%(e.g., 50%) of the width of navigational area 740.

A described above, a relationship between the movement of a user'sfinger on navigational area 740 and position of window 904 and/or sizeof source identifier 906 is defined. As further described above withrespect to Table 1, a set of touch events may be interpreted as a motionevent having a direction, a distance, and a speed. In one example, acompanion device including interface 700 may send an indication tocomputing device 200 that a user has initiated a channel changetransition (e.g., activated navigational area 740 at any point withinprotrusions 744 and moved a finger the minimum distance). The companiondevice may subsequently send touch event data to computing device 200.Computing device 200 and/or graphical processing unit 230 may beconfigured to move window 904 on display 250 and move and scale the sizeof an information group based on the received touch event data. In oneexample, the movement of window 904 on display 250 (e.g., how far window904 moves to the left in the example of FIG. 10) may be based on thefollowing equation:Window movement=(a*distance_(ME))×(b*speed_(ME)),

where

Window movement corresponds to a distance on display (e.g., a number ofpixels);

distance_(ME) corresponds to a distance of a motion event;

speed_(ME) corresponds to a speed of a motion event; and

a and b are scaling factors.

In this manner, the movement of a window on display is relative todistance and speed of a swipe gesture. It should be noted that based onthis equation, for a given swipe distance, the distance window 904appears to move on display 250 is based on the speed of a swipe. Thatis, referring to FIG. 10, window 904 will move further to the left, if ause performs a relatively faster swipe. As described above, a thresholdmay be defined based on window movement. That is, for example, if a userprovides an input that causes window 904 to move halfway across display250, based on distance and speed of a swipe, a channel change transitionmay occur.

In some examples, computing device 200 and a companion device includinguser interface 700 may be configured such that a user may be able to setthe sensitivity with respect to a channel change transition. That is,particular users may desire the ability to preview items of contentand/or cause channel changes to occur more rapidly. In one example,computing device 200 may be configured such that a user may set asensitivity setting to one of: high, medium, or low, where each settingprovides a threshold that must be exceeded in order for a channel changetransition to occur. In one example, each setting may be associated withrespective values of scaling factors, a and b, described above (e.g., ahigh sensitivity provides the highest values of a and b). Further, inone example, a user may be able to explicitly set values associated withsensitivity of a channel change transition. In the example illustratedin FIG. 10, the motion of the user's finger to the left causes window904 to appear at the right edge of display 250 and move to the left. Insome examples, computing device 200 and a companion device includinguser interface 700 may be configured such that a user may be able to sethow the movement of window 904 corresponds to the motion of the user'sfinger. For example, a user may wish to invert the movement of window904 with respect to the motion of the user's finger. That is, themovement of the user's finger to the left may cause window 904 to appearat the left edge of display 250 and move to the right.

As described above, the example illustrated in FIGS. 9A-9D illustratesan example where video corresponding to an item of content associatedwith window 904 is not immediately available. In some examples, delaysin accessing video content may be mitigated using so-called pre-tuningtechniques. That is, for example, a television or set-top box accessingan over-the-air or a cable television source may include multipletuners, where a first tuner is tuned to a current channel and additionaltuners are tuned to channels a user is likely to tune to (e.g., adjacentchannels in a channel listing). Further, in the example where atelevision service includes a streaming or OTT television service, acomputing device may access multiple media streams simultaneously (e.g.,streams associated with different television networks). It should benoted however that in some cases the availability of resources of acomputing device may limit the effectiveness of pre-tuning techniques.For example, a computing device may have a limited number of availabletuners and/or processing resources. Further, in the case of an OTTtelevision service, the amount of available bandwidth may be limitedsuch that additional media streams cannot be accessed without adverselyimpacting the quality of a primary media stream. Further, limitationswith respect to the availability of computing device resources maybecome apparent in the case where a user wishes to change content in arapid manner (i.e., rapid channel “surfing”).

As described above with respect to FIG. 2, buffering associated with onemedia segment may propagate throughout the presentation of the event.Although buffering may be acceptable when an event is presented to auser, when a segment is associated with a pre-tuned media stream,buffering may cause a pre-tuned media stream to become out of sync withan event. In one example, computing device 200 may be configured tosimulate playback of an item of content that a user is likely to accessin order to maintain synchronization with an event. In some examples,this type of synchronization may be referred to as system timesynchronization. As described above, an index file may provide timinginformation associated with each media segment included in an event. Inone example, computing device 200 may retrieve an index file for an itemof content that a user is likely to access and simulate playback ofmedia segments listed in the index file. That is, computing device 200may retrieve an index file and determine which media segment should beaccessed upon a channel change based on a clock and an estimated bitrate. That is, instead of downloading media segments associated with anevent and potentially introducing delay, computing device 200 mayretrieve a more current, with respect to system time, media segment upona user initiating, partially completing (e.g., being within athreshold), and/or completing a channel change transition by estimatingwhich media segment should be played back at a particular system time.In one example, upon a user initiating, partially completing and/orcompleting a channel change transition, computing device 200 maydownload a media segment file corresponding to the media segment thatshould be played at the current system time. In one example, upon a userinitiating, partially completing and/or completing a channel changetransition computing device 200 may download a subsequent media segmentfile (i.e., the next media segment after the media segment that shouldbe played at the current system time).

In one example, an item of content a user is likely to access mayinclude adjacent television channels in a television channel listing.For example, if a currently tuned channel is channel number 100,computing device 200 may be configured to retrieve index files forchannels 98, 99, 101, and 102 and simulate playback for one or more ofthese channels. Further, as described above, a user profile may includeuser behavior information and/or information regarding whether a user isleft hand dominant or right hand dominant Behavior information mayinclude information regarding how a user has previously caused channelchanges to occur. For example, computing device 200 may determine that aparticular user usually swipes to the left. In this case, channelsassociated with left swipes may be higher numbered channels andcomputing device 200 may prioritize adjacent higher numbered channelsover adjacent lower numbered channels. For example, instead ofretrieving index files for channels 98, 99, 101, and 102, computingdevice 200 may retrieve index files for channels 101, 102, 103, and 104based on the determined user behavior. In a similar manner, highernumbered channels or lower numbered channels may be prioritized based onwhether a user is left hand dominant or right hand dominant. Forexample, left hand dominant users may be more likely to perform swipesto the left and right hand dominant users may be more likely to performswipes to the right. As described in further detail below, images andgraphics associated with an item of content may be prioritized based oninformation included in a user profile. It should be noted that althoughthe example illustrated in FIGS. 9A-9B is described with respect toadjacent channels in a listing, the techniques described with respect toFIGS. 9A-9D may be generally applicable to any type of ordered sets ofitems of content (e.g., switching from movies within a set of moviesordered alphabetically, etc.).

Referring again to FIG. 9A, in one example, in addition to providing aninside swipe gesture when window 902 is displayed in a full screenviewing mode on display 250, a user may provide other gestures thatcause other functionality to occur. FIG. 11 illustrates an example wherea user performs an outside swipe gesture, as described above withrespect to FIG. 8B, when graphical user interface 900 as illustrated inFIG. 9A is presented on display 250. In the example illustrated in FIG.11, upon a user completing an outside swipe gesture, graphical userinterface 1100 as illustrated in FIG. 18A is presented on display 250.It should be noted that graphical user interface 900 and graphical userinterface 1100 are associated with distinct types of media services andrepresent different applications, sources, and/or portals. That is,graphical user interface 900 may correspond to a user accessing items ofcontent through a television service (e.g., an OTT television service)and graphical user interface 1100 may correspond to a user accessingitem of content through an on demand service. Thus, computing device 200may be configured to switch from one media service application toanother media service application (or other type of application, e.g.,teleconference application), upon a user performing an outside swipegesture. In this manner, an outside swipe gesture may correspond toapplication switching and an inside swipe gesture may correspond toswitching of selected items of content within an application (e.g.,channel changing). As such, computing device 200 may be configured toenable a user to perform multi-level swipe gestures.

FIG. 11 illustrates an example transition from one application toanother application based on a user performing an outside swipe gesture.In the example illustrated in FIG. 11, for each subsequent point intime, Time₀, Time₁, and Time₂, graphical user interface 900 and/orgraphical user interface 1000 as displayed on display 250 and a usergesture as received by navigational area 740 are illustrated. At Time₀,graphical user interface 900 displays a full-screen video presentationof the item of content associated with window 902 and a user initiatesan outside swipe gesture by activating navigational area 740 outside ofthe area defined by protrusions 744. At Time₁ and Time₂, as the userslides a finger to the left on navigational area 740, display 250appears to zoom out about the center of window 902, such that window 902is displayed as a window in graphical user interface 1000 and therebyreveling additional media service applications. In a manner similar tothat described above with respect to FIG. 10, the zooming out ofgraphical user interface 900 to reveal graphical user interface 1000 maybe synchronized with the movement of a user's finger on navigationalarea 740. In one example, the size of window 902 on display 250 (e.g.,the zoom level) may be based on the following equation:Zoom level=100−((c*distance_(ME))×(d*speed_(ME))),

-   -   where    -   Zoom level corresponds to percentage with a maximum value of        100% corresponding to a full screen presentation of window 902        and a minimum value (e.g., 20-35%) corresponding to a full        screen presentation of graphical user interface 1000;    -   distance_(ME) corresponds to a distance of a motion event;    -   speed_(ME) corresponds to a speed of a motion event speed; and    -   c and d are scaling factors.

Further, in a manner similar to that described above with respect toFIG. 10, graphical user interface 1100 may be presented on display 250based on whether a gesture exceeds a threshold. That is, upon the usernot exceeding the threshold and lifting a finger from navigational area740, graphical user interface 900 may be displayed on display 250 (i.e.,a fast zoom-in may occur) and upon the user exceeding the threshold andlifting a finger from navigational area 740, graphical user interface1100 may be displayed on display 250. Further, in a manner similar toinitiating tuning based on the movement of a user's finger onnavigational area 740, described above, in order to conserve or optimizeresources of a computing device the loading of an application may bebased on the movement of a user's finger on navigational area 740. Thatis, in one example, computing device resources may be optimized byinitiating the loading of an application upon a user exceeding athreshold.

FIG. 12 illustrates graphical user interface 1000 in detail. Asillustrated in FIG. 12, in addition to including window 902, graphicaluser interface 1000 includes windows 1002 a-1002 d, where each ofwindows 1002 a-1002 d may correspond to a respective media serviceapplication, other type of application, or portal. Each of windows 1002a-1002 d includes an image or video associated with an application thatenables a user to identify an application or portal corresponding toeach window. In the example illustrated in FIG. 12, window 1002 acorresponds to a personalized media service portal, window 1002 bcorresponds to a search portal, window 1002 c corresponds to an ondemand portal, and window 1002 d corresponds to a media streamingservice application (e.g., Netflix). It should be noted that in someexamples, additional applications or portals may be available to a user.An example of a personalized media service portal is described incommonly assigned, currently pending U.S. patent application Ser. No.14/465,043 filed Aug. 21, 2014, which is incorporated by reference inits entirety. An example of an on demand portal is illustrated in FIGS.18A-18B. As described in further detail below, an application and/or abackground image associated with an application may be loaded in a cacheto enable a smooth transition (e.g., reduce potential user perceivedlag) from graphical user interface 900 to graphical user interface 1000.For example, when a full screen video presentation associated with atelevision viewing application is displayed, processes associated with amedia streaming application may occur in the background, such that themedia streaming application remains in a state that reduces loadingtime, upon a user switching to the application.

FIG. 13 is a conceptual diagram that generally illustratesinside/outside multi-level gestures. In the example illustrated in FIG.13, a gesture is distinguish based on whether the starting point (e.g.,the coordinates of an action down event) is within or outside of thearea defined by protrusions 744. In the example illustrated in FIG. 13,if the starting point is outside of the area, the gesture corresponds toapplication switching, and if the gesture is inside of the area, thegesture corresponds to item of content switching of items associatedwith a selected application, where a switch may occurs upon a gestureexceeding a threshold. It should be noted that in other examples, othertypes of multi-level activations may be supported. For example,multi-level vertical swipes, diagonal swipes, inside/outside pinches,and the like may be supported. Further, as described in further detailbelow multi-level gestures may be enabled or disabled based on whether aparticular graphical user interface associated with an application isdisplayed. That is, for example, in the case of a television serviceapplication, multi-level gestures may be enabled when a full screenvideo presentation is displayed and may be disabled when a programmingguide or other graphical user interface is displayed. In this manner, auser may be able to navigate a programming guide or another graphic userinterface without inadvertently switching applications. Further, in thecase of an on demand content application, multi-level gestures may bedisabled when a full screen video presentation is displayed and may beenabled when a graphical user interface is displayed. In this manner, auser may be able to view a full screen on demand video presentationinterface without inadvertently switching applications.

In one example, in addition to enabling a user to perform horizontalinside swipe gestures and horizontal outside swipe gestures when window902 is displayed in a full screen viewing mode on display 250 to causefunctionality to occur, computing device 200 may be configured to enablea user to perform other activations, including providing additionalgestures to touch interface 706, to cause additional functionality tooccur. In one example, computing device 200 may be configured to enablea user may cause guides to be displayed by performing one or moreadditional types of gestures. FIGS. 14A-14C are conceptual diagramsillustrating examples where graphical user interface 900 displays one ormore guides based on particular user activations. FIG. 15 is aconceptual diagram further illustrating the guides illustrated in FIGS.14A-14C and corresponding example inputs received by an example userinterface. As illustrated in FIGS. 14A-14C, graphical user interface 900includes window 902, described above, dynamic guide 912, on now guide920, and grid guide 926. Each of dynamic guide 912, on now guide 920,and grid guide 926 include tiles. Tiles may be similar to windowsdescribed above and may include visual indicators (e.g., video or animage) and textual information associated with an item of content thatmay enable a user to quickly identify an item of content and/or previewan item of content. Further, tiles may be associated with dataassociated with an item content (e.g., a tile may be associated with acrew member in a movie or a genre of a movie). As described in detailbelow, computing device 200 may be configured to enable a user to causea function associated with a tile to occur by causing a title to becomeactive (e.g., causing tile to be selected) and performing a particularactivation. Further, it should be noted that in some examples, short-cuticon area 750, described above, may include application specific iconscorresponding to tiles displayed on display 250 and a user may cause afunction associated with a tile to occur by activating a correspondingicon displayed on short-cut icon area 750.

As illustrated in FIG. 15, when an item of content associated withwindow 902 is displayed in a full screen viewing mode, a user mayperform a downward swiping gesture to cause dynamic guide 912 to bedisplayed. It should be noted that in the example illustrated in FIG. 15the starting point of the downward swiping gesture is illustrated asinside of the upper protrusion on navigational area 740, in otherexamples, downward swipes having other starting points may cause dynamicguide 912 to be presented. In one example, a downward swipe initiatedanywhere on navigational area 740 having a minimum distance may causedynamic guide 912 to be displayed. In one example, in a manner similarto that described above with respect to FIGS. 9B-9C, the display ofdynamic guide 912 may be based on a threshold. That is, for example,dynamic guide 912 may be partially displayed and may either snap back orbe displayed as illustrated in FIG. 14A based on whether the distancetraveled by a user's finger exceeds a threshold. In one example, athreshold may be a distance of approximately 15-20% of the length ofnavigational area 740. In the example illustrated in FIG. 14A, the sizeof window 902 is reduced compared to the size of window 902 as displayedin FIG. 9A and dynamic guide 912 is displayed in a non-overlappingmanner with respect to window 902. It should be noted that in otherexamples, dynamic guide 912 may be displayed as overlapping a fullscreen presentation of window 902.

As illustrated in FIG. 14A, dynamic guide 912 includes tiles 914 a-914 eand tiles 916 a-916 c. Further, in the example of FIG. 14A, tile 914 eis illustrated as an active tile 918. Tiles 914 a-914 e are associatedwith items of content that a user has recently accessed (e.g., recentpreviously tuned channels). It should be noted that recently accesseditems of content may be associated with one or more distinct services(e.g., various types of media service). In one example, tiles 914 a-914e may be chronologically ordered from right to left, (e.g., the item ofcontent associated with tile 914 e is the most recently accessed item ofcontent, the item of content associated with tile 914 d is the secondmost recently accessed item of content, and so on). In the case whereeach of the items of content associated with tiles 914 a-914 e includerecently accessed television channels, a minimum channel access time(e.g., 5 seconds) may be used in order to add a channel to the group ofrecent channels. In one example, dynamic guide 912 may be configured todisplay a maximum number of tiles corresponding to items of contentrecently accessed by a user. For example, dynamic guide 912 may beconfigured to display up to five tiles corresponding to items of contentpreviously accessed by a user. It should be noted that in some cases, auser may have recently accessed fewer items of content than the maximumnumber of tiles corresponding to recently accessed items of content thatmay be displayed. For example, recently accessed items of content may bedefined according to a viewing session (e.g., recently accessed items ofcontent may be reset on power up/down events). In this case, dynamicguide 912 may be configured to display additional tiles associated withtrending items of content.

In the example illustrated in FIG. 14A, tiles 916 a-916 c are associatedwith trending items of content. In one example, trending items ofcontent may include items of content currently available to a user thatare popular with one or more users of a media service, a social network,a search service, or the like. For example, each of the respective itemsof content associated with tiles 916 a-916 d may be associated with aranking value comprised of one or more of: the number of users currentlyaccessing the item of content through a media service, the number ofsocial media comments (e.g., tweets, posts, etc.) referencing the itemof content within a past time interval, and the number of search queriesrelated to the item of content within a past time interval. In oneexample, the ranking value may be referred to as a buzz value. Anexample of a buzz value is described in commonly assigned, currentlypending U.S. patent application Ser. No. 14/260,677 filed Apr. 24, 2014,which is incorporated by reference in its entirety. Further, it shouldbe noted that items of content associated with tiles 916 a-916 d mayinclude items of content available on an on demand basis.

In the example illustrated in FIG. 14A based on the availability oftuning resources (e.g., number of tuners and/or number of media streamsthat can be simultaneously accessed), tiles 914 a-914 e and tiles 916a-916 c may include an image plate associated with an item of content ora video presentation associated with an item content. In one example,active tile 918 may include a video presentation and the other tiles mayinclude an image plate. In one example, a user may cause the active tile918 to change by performing horizontal swipe gestures. In one example,inside/outside multi-level horizontal swipe gestures may be enabled whendynamic guide 912 is displayed. In this case, an inside horizontal swipegesture may correspond to changing active tile 918 and an outsidehorizontal swipe gesture may correspond to application switching, asdescribed above. In another example, inside/outside multi-levelhorizontal swipe gestures may be disabled when dynamic guide 912 isdisplayed. In this case, both inside horizontal swipe gestures andoutside horizontal swipe gestures may correspond to changing active tile918.

As described above, in the example where user interface 700 isimplemented using computing device 790, in addition to a user providinginput by performing gestures using navigational area 740, a user mayperform a single click or a multiple click activation by causing switch787 be activated. In one example, computing device 200 may be configuredsuch that a user performing directional click activations causes a tileto become the active tile 918. For example, referring to FIG. 14A, upona user performing three subsequent left click activations, tile 914 bmay become the active tile 918. Further, in one example, computingdevice 200 may be configured such that upon a user performing an OKsingle click activation, an item of content associated with active tile918 may become associated with window 902. That is, a video presentationassociated with an item of content associated with active tile 918 maybecome displayed in window 902. In one example, window 902 may remainthe size illustrated in FIG. 14A, upon an OK single click activation. Inanother example, window 902 may be presented in a full screen viewingmode, as illustrated in FIG. 9A, upon an OK single click activation. Inthis manner, in the case of a television service, an OK single clickactivation, when dynamic guide 912 is displayed may correspond to achannel change function. Further, it should be noted that the item ofcontent associated with window 902 prior to the OK single clickactivation may be added to a list recently accessed items of content andpresented as a tile in dynamic guide 912.

In one example, in addition to an OK single click activation whendynamic guide 912 is displayed causing an item of content associatedwith active tile 918 to become associated with window 902, computingdevice 200 may be configured such that an OK double-click activation maycause a graphical user interface providing more information for an itemof content associated with active tile 918 to be displayed. An exampleof a graphical user interface providing more information for an item ofcontent is illustrated in FIGS. 16A-16F and in some examples may bereferred to as a media card graphical user interface. It should be notedthat in one example, an OK double-click activation may cause an item ofcontent associated with active tile 918 to become associated with window902 and an OK single click activation may cause a media card to bedisplayed. In one example, a user may be able to change the respectivefunctionality associated with an OK single click activation and an OKdouble-click activation (e.g., by changing a setting using a menugraphical user interface). Further, it should be noted that in someexamples in addition to, or as an alternative to click activations, tapson navigation area 740, including, for example, taps of OK button 742may cause functions associated with active tile 918 to occur. In thismanner, graphical user interface 900 as illustrated in FIG. 14A and userinterface 700 may enable a user to select an item of content. In oneexample, when graphical user interface 900 as displayed in FIG. 14A ispresented a user may cause graphical user interface 900 as displayed inFIG. 9A to be presented by performing a subsequent downward swipe, anupward swipe and/or another activation corresponding to an exit function(e.g., activating a corresponding virtual button).

Referring again to the example illustrated in FIG. 15, when an item ofcontent associated with window 902 is displayed in a full screen viewingmode, a user may perform an upward swiping motion to cause on now guide920 to be displayed. As further illustrated in FIG. 15, a subsequentupward swiping motion when on now guide 920 is displayed may cause gridguide 926 to be displayed. Each of on now guide 920 and grid guide 926may correspond to items of content corresponding to events. That is,availability of items of content associated with on now guide 920 andgrid guide 926 may be based on a time and date (e.g., items of contentmay correspond to an over-the-air broadcast or the like). It should benoted that in one example, a single upward swipe exceeding a thresholdmay cause grid guide 926 to be displayed. In one example, an upwardswipe having a distance of approximately 15-20% of the length ofnavigational area 740 may cause on now guide 920 to be displayed and anupward swipe having a distance of approximately 50% of the length ofnavigational area 740 may cause on grid guide 926 to be displayed. Itshould be noted that in a manner similar to that described above withrespect to dynamic guide 912, the display of on now guide 920 and/orgrid guide 926 may be based on a threshold. That is, for example, on nowguide 920 may be partially displayed and may either snap back or bedisplayed as illustrated in FIG. 14B based on whether the movement of auser's finger exceeds a threshold.

As illustrated in FIG. 14B, on now guide 920 includes tiles 924 a-924 f,where tile 924 c is an active tile 922. Further, as illustrated in FIG.14C, when grid guide 926 is displayed, on now guide 920 is included as arow of grid guide 926. Tiles 924 a-924 f may be similar to tiles 914a-914 e described above. Further, active tile 922 may be similar toactive tile 918 described above. That is, a user may perform horizontalswipe gestures and/or directional click activations to cause active tile922 to change and may further perform activations, e.g., OK clickactivations as described above, to cause functions associated withactive tile 922 to occur. Further, it should be noted that in oneexample, a user may perform vertical swipe gestures to cause items ofcontent other than items of content associated with tiles in on nowguide to become selected. For example, referring to FIG. 14C, in oneexample, a user may perform an upward swipe gesture to cause items ofcontent associated with 11:00 PM to be associated with tiles 924 a-924f. That is, a user may scroll with respect to grid guide 926. Further,in one example, a user may perform diagonal swipes to scroll throughchannels and times simultaneously.

In one example, horizontal swipe gestures when on now guide 920 isdisplayed may be distinguished based on the speed at which a userperforms a swipe, where the speed may be determined by motion events.For example, a relatively slow swipe may cause the distance the usermoves a finger along navigational area 740 to correspond to a linearchange in the active tile 922 and a relatively fast swipe may cause thedistance the user moves a finger along navigational area 740 tocorrespond to an exponential change in the active tile 922. For example,a slow left horizontal swipe may cause one of tiles 924 a-924 b tobecome the active tile 922 for a swipe having a distance of 0% to 50% ofthe width of navigational area 740 and a fast left horizontal swipehaving a distance of 0% to 50% of the width of navigation area 740 maycorrespond to a selection of one of any number of items of contents(e.g., 20-100 items of content). For example, if tile 924 c isassociated with channel 120 in a television listing, a fast lefthorizontal swipe may enable a user to cause channel 70 to become theactive tile. As described in further detail below, images associatedwith items of content may be cached based on the likelihood that a userwill perform a gesture that will cause a tile to be displayed. In thismanner, graphical user interface 900 as illustrated in FIGS. 14B-14C anduser interface 700 may enable a user to browse for item of contenthaving a presentation time. It should be noted that in one example,active tile 922 may remain in a center position, e.g., the positionillustrated in FIG. 14C, as a user performs swipes to navigate gridguide 926.

As described above, with respect to dynamic guide 912, upon a userperforming respective OK click activations or the like, an item ofcontent associated with active tile 918 may be presented in window 902or a corresponding media card graphical user interface may be presentedSimilar functions may be performed for an item of content associatedwith active tile 922, upon a user performing click activations or thelike. FIGS. 17A-17B are conceptual diagrams illustrating the graphicaluser interfaces illustrated in FIGS. 16A-16F and corresponding exampleinputs received by an example user interface. As illustrated in FIGS.16A-16F, in additional to including tiles 924 b-924 d, graphical userinterface 950 includes active tile 952, description information 960,review information 962, watch icon 964, record icon 966, more icon 968,tiles 970 a-970 e, tiles 972 a-972 g, tiles 974 a-974 g, tiles 976 a-976g, crew member information 980, add as favorite icon 982, and autorecord icon 984. The example illustrated in FIGS. 16A-16F represents anexample where a user performs a continuous upward swipe gesture and/ormultiple subsequent upward swipe gestures using navigational area 740,thereby causing graphical user interface 950 to scroll vertically. Itshould be noted that in other examples other types of scroll operationactivations may be used (e.g., activation of navigation arrow buttons531 or arrow soft keys). As illustrated in FIGS. 16A-16F, as graphicaluser interface 950 scrolls, respective tiles or icons may become active.That is, tile 924 c is active in FIG. 16A, watch icon 964 is active inFIG. 16B, tile 970 c is active in FIG. 16C, tile 972 d is active in FIG.16D, tile 974 d is active in FIG. 16E, and add as favorite icon 982 isactive in FIG. 16F. Upon a user performing an OK single click activationor an OK multi-click activation, as described above, or anotheractivation (e.g., taps of the OK button 742, activations of selectbutton 532, etc.) a function corresponding to an active icon may occuror a presentation corresponding to an item of content associated with anactive tile may occur. Further, when an icon or tile within a particularrow is active, a user may cause the active tile 952 to change byperforming horizontal swipe gestures. In one example, inside/outsidemulti-level horizontal swipe gestures may be enabled when graphical userinterface 950 is displayed. In another example, inside/outsidemulti-level horizontal swipe gestures may be disabled when graphicaluser interface 950 is displayed.

As illustrated in FIGS. 16A-16F and FIG. 17A, the size of tiles ingraphical user interface 950 changes based on the position of the tileswith respect to the vertical center of display 250. In one example, in amanner similar to that described above with respect to FIG. 10 and FIG.11, the movement of tiles and the changing of size of tiles may besynchronized with the movement of a user's finger on navigational area740. Further, a particular row of tiles may snap to the vertical centerof display 250 based on the movement of the user's finger exceeding athreshold. In this manner, a user may preview items of contentassociated with a row of tiles adjacent to a currently selected row oftiles before causing the adjacent row of tiles to move to the verticalcenter of display 250.

Referring to FIG. 16A, description information 960 and reviewinformation 962 correspond to the item of content associated with tile924 c (i.e., Marvel's Agents of the S.H.I.E.L.D.). Descriptioninformation 960 provides information that enables a user to determinewhether an item of content is of interest. In the example illustrated inFIG. 16A description information 960 includes a plot synopsis, genreinformation, content rating, content presentation time, content videoand audio information, and captioning service information. Reviewinformation 962 includes information regarding the subjective quality ofthe item of content. In the example illustrated in FIG. 16A, reviewinformation 960 includes a number of stars on a five star scale, whichmay be based on feedback provided by users of a media service, andreviews provided from webpage content distribution sites (e.g., from theRotten Tomatoes web site and the Flixster website). In other examples,review information 960 may include review information from othersources. In one example, computing device 200 may be configured toenable a user to select the sources of review information that will beincluded in graphical user interface 950 (e.g., by changing a settingusing a menu graphical user interface). In the example illustrated inFIG. 16A, tile 924 c is an active tile 952. In one example, computingdevice 200 may be configured such that upon a user performing an OKsingle click activation, the item of content associated with tile 924 cis presented in a full screen viewing mode. In a manner similar to thatdescribed above with respect to FIG. 14C, a user may perform fast orslow horizontal swipe gestures in order to cause another tile to becomethe selected tile.

In the example illustrated in FIG. 16B watch icon 964 is active. In oneexample, when watch icon 964 is active, upon a user performing an OKsingle click activation, the item of content associated with tile 924 cmay be presented in a full screen viewing mode. In one example, a usermay perform horizontal swipe gestures in order to cause record icon 966or more icon 968 to become active. Further, in one example, a user mayperform directional click activations in order to cause record icon 966or more icon 968 to become active. Record icon 966 may be configured toenable a user to cause an item of content associated with tile 924 c tobe stored to a storage device (e.g., a disk drive of a PVR), uponactivation. In one example, an intermediate graphical user interface theenables a user to change and/or confirm recording settings may bepresented. More icon 968 may be configured to cause additionalinformation associated with an item of content associated with tile 924c to be presented on display 250, upon activation. In one example,additional information may include information available from a webpagecontent distribution site. For example, a web site associated with theitem of content associated with tile 924 c may be retrieved andpresented.

Referring to FIGS. 16A-16D, items of content associated with tiles 970a-970 e represent other episodes of a television series associated withtile 924 c. That is, for example, tile 924 c may represent an episodethat is currently available through an over-the-air transmission andtiles 970 a-970 e may represent previously aired or to be airedepisodes. In the example illustrated in FIG. 16C, tile 970 c is anactive tile 952. In one example, computing device 200 may be configuredsuch that upon a user performing an OK single click activation, or thelike, the item of content associated with tile 970 c may be presented ina full screen viewing mode. In a manner similar to that described abovewith respect to FIG. 16B, a user may perform a horizontal swipe gesturesin order to cause another one of tiles 970-970 e to become the selectedtile 952. It should be noted that in the case where an episoderepresents an episode to be aired at a future date (e.g., next week'sepisode), upon a user performing an OK single click activation, or thelike, a graphical user interface including additional information aboutthe particular episode may be displayed. Referring to FIGS. 16C-16E,tiles 972 a-972 g may be similar to tiles 970 a-970 e. In the exampleillustrated in FIGS. 16C-16E, tiles 972 a-972 g represent items ofcontent that are related to the item of content associated with tile924. For example, items of content associated with tiles 972 a-972 g maybe of a similar type of genre to the item of content associated withtile 924. One or more algorithms may be used to define similar types ofitems of content. Tiles 972 a-972 g may be activated in a manner similarto the activation of tiles 970-970 e described above. That is, forexample, upon a user performing an OK click activation, or the like, theitem of content associated with tile 972 d may be presented in a fullscreen viewing mode or a graphical user interface including additionalinformation may be displayed.

Referring to FIGS. 16D-16F, tiles 974 a-974 g represent cast and crewmembers associated with the item of content associated with tile 924.Tiles 974 a-974 g may be activated in a manner similar to the activationof tiles 970 a-970 e described above. In the example illustrated in FIG.16E, tile 974 d is the selected tile 952. In one example, upon a userperforming an OK single click activation, or the like, additionalinformation associated with the crew member associated with tile 974 dto be presented on display 250. In one example, information availablefrom a webpage content distribution site may be retrieved and presented,e.g., a web site associated with the crew member may be retrieved andpresented.

In the example illustrated in FIG. 16F, add as favorite icon 982 isactive. In one example, when add as favorite icon 982 is active, upon auser performing an OK single click activation, items of contentassociated with the crew member associated with tile 974 d may bepresented to a user. For example, items of content associated withfavorite crew members may be highlighted in grid guide 926 or may bepresented to a user through one or more other graphical user interfaces(e.g., pop-up notifications, etc.). Further, in one example, favoritecrew members may be stored as part of a user profile. Further, a usermay perform horizontal swipe gestures, or directional click activations,in one example, in order to cause auto record icon 984 to become active.Auto record icon 984 may be configured to enable a user to cause itemsof content associated with the crew member to be stored to a storagedevice, upon activation. As further illustrated in FIG. 16F, crew memberinformation 980 may be displayed (e.g., biographical information). Inthis manner, graphical user interface 950 as illustrated in FIGS.16A-16F and user interface 700 may enable a user view additionalinformation associated with a particular item of content and may enablea user to find additional items of content associated with theparticular item of content.

As described above, graphical user interface 950 may be displayed upon auser causing on now guide 920 or grid guide 926 to be presented when afull screen view mode is displayed and further performing an activationof an active tile in a guide. In some cases a user may wish to return tothe full screen viewing mode when graphical user interface 950 isdisplayed. FIG. 17B illustrates an example of a specific gesture that auser may perform in order to cause display 250 to return to a fullscreen viewing mode. In some instances, the gesture illustrated in FIG.17B may cause functionality similar to functionality associated withactivation of exit button 537 to occur and as such in some cases may bereferred to as an exit gesture. In the example illustrated in FIG. 17B,a left horizontal swipe gesture having a starting point of outside ofthe upper protrusion and right protrusion on navigational area 740 isillustrated. In one example, a left horizontal swipe gesture having astarting point of outside of the upper protrusion and right protrusionon navigational area 740 having a distance of approximately 15-20% ofthe length of navigational area 740 may cause a full screen viewing modeto be displayed. It should be noted that in other examples, otherstarting points and directions (e.g., diagonal swipes) may be correspondto an exit gesture.

As described above with respect to FIG. 11, when graphical userinterface 900 as illustrated in FIG. 9A is presented on display 250, auser may perform an outside swipe gesture in order to cause anapplication to switch from a television viewing application to an ondemand portal. FIGS. 18A-18B illustrate an example graphical userinterface associated with an on demand portal. In the exampleillustrated in FIGS. 18A-18B, graphical user interface 1100 includestiles 1102 a-1102 e, tiles 1104 a-1104 e, and rating information 1106.In the example illustrated in FIGS. 18A-18B, tiles 1102 a-1102 e areassociated with categories of items of content, which may includegenres, and the like, and tiles 1104 a-1104 e are associated with itemsof content within a category.

Referring to FIG. 18A, the tile located in the center of graphical userinterface 1100 is an active tile. In a manner similar to that describedabove with respect to graphical user interface 900 and graphical userinterface 950, a user may cause one of tiles 1102 a-1102 e to becomeactive by performing a relatively fast horizontal swipe gesture or arelatively slow horizontal swipe gesture. It should be noted thatadditional tiles associated with genre may be displayed on display 250in response to a horizontal swipe gesture. For example, there may bedozens of available genres and graphical user interface 1100 may displayfive tiles associated with genre at a time. Further, in a manner similarto that described above with respect to FIGS. 16A-16F, a user mayperform upward swipe gestures and downward swipe gestures in order tocause a row of tiles to be positioned at the vertical center of display250. In the example illustrated in FIG. 18A, upon a user performing adownward swipe gesture, a row of tiles associated with popular items ofcontent may be positioned at the vertical center of display. In oneexample, popular items of content may be based on a ranking value in amanner similar to trending items of content being associated with aranking value as described above. Further, in the example illustrated inFIG. 18A, upon a user performing an upward swipe gesture, a row of tilesassociated with television network categories may be positioned at thevertical center of display. In this manner, graphical user interface1100 enables a user to browse categories of items of content as well asitems of content using horizontal swipe gestures and vertical swipegestures.

Computing device 200 may be configured such that upon a user performingan OK click activation, or the like, as described above, when one oftiles 1102 a-1102 e is active, or another tile associated with acategory is active, corresponding tiles associated with items of contentwithin a genre category are displayed. Graphical user interface 1100 asdisplayed in FIG. 18B represents an example where a user performs an OKclick activation, or the like, when tile 1102 c is active. That is,items of content associated with tiles 1104 a-1104 e are within theAction & Adventure genre. A user may cause one of tiles 1104 a-1104 e(or tiles not currently displayed) to become active by performinghorizontal swipe gestures. When a tile is active, rating information1106 corresponding to the item of content associated with the activetile is displayed. Rating information 1106 may be similar to ratinginformation 962 described above. Further, tiles 1104 a-1104 e may beactivated in a manner similar to the activation of tiles 970 a-970 edescribed above. That is, for example, upon a user performing an OKclick activation, or the like, the item of content associated with tile1104 c may be presented in a full screen viewing mode or a graphicaluser interface including additional information may be displayed. In oneexample, a graphical user interface that enables a user to purchaseaccess to an item of content may be displayed.

As illustrated in FIG. 18B “Back to Genres” is displayed at the top ofgraphical user interface 1100 and “Browse by Network” is displayed atthe bottom of graphical user interface 1100. In this manner, in oneexample, upon a user performing a downward swipe gesture, graphical userinterface 1100 as illustrated in FIG. 18A may be displayed and upon auser performing an upward swipe gesture, graphical user interface 1100may display a row of tiles associated with television networks at thecenter vertical position. That is, upward and downward swipe gesturesmay enable a user to return to category browsing. In this manner,graphical user interface 1100 and navigational area 740 may beconfigured to enable a user to browser and select item of contentavailable on an on demand basis using swipe gestures and clickactivations.

As described above, with respect to FIGS. 9A-18B, when an item ofcontent is displayed in a full screen viewing mode, a user may performinside horizontal swipe gestures, outside horizontal swipe gestures,downward swipe gestures, and upward swipe gestures using navigationalarea 740 and a computing device receiving each particular gesture maycause different graphical user interfaces to be displayed that enable auser to browse and select items of content available through one or morediverse application, sources, and/or portals using click activations.Thus, computing device 200, user interface 700, and the graphical userinterfaces described with respect to FIGS. 9A-18B are configured toenable a user to browse and select items of content available throughone or more diverse application, sources, and/or portals using gesturesand click activations.

Referring to FIGS. 19A-19E, flowchart 1900 illustrates an example of howgraphical user interfaces described herein may be presented on adisplay. It should be noted that although flowchart 1900 is describedwith respect to computing device 200 and user interface 700, thetechniques described with respect to flowchart 1900 may be performedusing any and all combinations of components of computing devices anduser interfaces. Further, it should be noted that flowchart 1900illustrates one example of how graphical user interfaces describedherein may be presented on a display and does not include all possibleuser inputs that may be provided in combination with the graphical userinterfaces and user interfaces described herein and as such flowchart1900 should not be construed to limit the techniques described herein.Further, as described above, interpreting whether touch eventscorrespond to a motion event and whether motion events correspond to agesture may be determined by a computing device and/or a companiondevice. Thus, techniques described with respect to FIGS. 19A-19E may begenerally applicable regardless of how processing (e.g., touch eventhandling) is distributed between a computing device and a companiondevice.

Referring to FIG. 19A, computing device 200 renders a full screenpresentation of a selected item of content (1902). An example of arendering of a full screen presentation of an item of content isillustrated in FIG. 9A. In addition to rendering a full screenpresentation, computing device 200 performs background processes (1904).Background processes may include, at least, any process used to optimizeCPU and/or GPU usage and/or reduce any delay perceived by a userinteracting with graphical user interfaces. For example, as describedabove, computing device 200 may be configured to perform pre-tuningtechniques, including simulating playback of an item of content that auser is likely to access, in order to reduce the time required to rendera full screen video presentation for an item of content and/or maintainsynchronization with an event. Further, as described above, when a fullscreen video presentation associated with a television viewingapplication is displayed, processes associated with other applications,including media streaming applications, may occur, such that the mediastreaming application remains in a state that reduces loading time, upona user switching to the application (e.g., a user performing an outsideswipe gesture). Further, as described above, images associated withitems of content may be loaded from a portion of system memory 204 toanother portion of system memory 204 (e.g., from a hard disk drive to acache) based on user behavior in order to reduce the time required torender the images on a display.

FIG. 20 represents an example of one of a plurality of backgroundprocesses that may be performed by computing device 200. FIG. 20illustrates an example of loading images based on user behavior.Flowchart 2000 illustrates an example of loading images associated witha graphical user interface from a portion of system memory 204 to acache. Loading images to a cache, in some examples, may be referred toas pre-loading. Referring to FIG. 20, computing device 200 loads zero ormore images associated with one or more graphical user interfaces basedon a user profile (2002). That is, for example, computing device 200 mayload zero or more images associated with one or more of each of thegraphical user interfaces described above with respect to FIGS. 9A-18Bbased on user profile information. It should be noted that in someexamples, loading images may include formatting images and/or storingimages as a hidden element (e.g., a <div> element in HTML) so that theymay be cloned or attached to another element. Formatting images andstoring images as hidden elements may reduce the amount of time requiredto render an image on a display.

In one example, computing device 200 may pre-load images based on thelikelihood a user will perform one of an inside horizontal swipegesture, an outside horizontal swipe gesture, a downward swipe gesture,or an upward swipe gesture. The likelihood of a user performing aparticular gesture may be based on behavior information included in auser profile. For example, computing device 200 may determine that aparticular user is more likely to perform channel change transitionsbefore accessing a grid guide based on past behavior of the user. Itshould be noted that loading images based on a user profile may includeloading a subset of available images to a cache and, in some casesprioritizing the loading of the subset of images. For example, computingdevice 200 may load image plates and information groups for ten channelsadjacent to a currently selected channel and images associated withtiles of a dynamic guide. Each of the images may be prioritized suchthat they are loaded in a particular order. For example, image platesand information groups for five channels adjacent to the currentlyselected channel (e.g., five higher numbered channels) may beprioritized over images associated with a dynamic guide, and imagesassociated with a dynamic guide may be prioritized over image plates andinformation groups for the other five channels adjacent to the currentlyselected channel (e.g., five lower numbered channels). For example, asdescribed above, left hand dominant users may be more likely to performswipes to the left and thus more likely to tune to higher numberedchannels.

Referring to FIG. 20, computing device 200 receives an initial userinteraction (2004), e.g., a touch event, a motion event, or a gesture.Upon receiving the initial user interaction, computing device 200 stopsthe loading process (2006). It should be noted that an initial userinteraction may be received prior to a loading process being completed.For example, computing device 200 may receive an initial userinteraction before being able to load all of the image plates andinformation groups for ten channels adjacent to a currently selectedchannel (e.g., 3 of 10 image plates and information groups may be loadedwhen an initial user interaction is received). Stopping the loadingprocess, upon receiving an initial user interaction, may optimizecomputing resources of computing device 200 and in some cases may benecessary to achieve an acceptable level of performance. For example, inthe event an initial user interaction corresponds to switching from atelevision viewing application to an on demand media streamingapplication, it may be more efficient to allocate CPU resources toloading and rendering graphics associated with the on demand mediastreaming application rather than continuing to load images associatedwith the television application to a cache. In this manner, the mannerin which images are prioritized may change based on user interactions.

Referring again to FIG. 20, after a last user interaction is received,computing device 200 waits a specified amount of time (2008) beforereturning to the image loading process. For example, computing device200 may wait approximately two seconds before pre-loading any additionalimages. Waiting a specified amount of time may conserve computingresources. Further, because the manner in which images are prioritizedmay change based on user interactions, it may be more efficient to waitafter a particular user interaction before loading images. That is,computing device 200 may wait until a relatively stable state beforeloading images. For example, in the case where pre-loading stops whengraphical user interface 900 as illustrated in FIG. 9A is displayed anda user provides interactions that subsequently cause graphical userinterface 950 to be displayed, it may be efficient to resume pre-loadingafter it is determined that a user is likely to continue browsing itemsof content while graphical user interface 950 is displayed. In thismanner, computing device 200 may be configured to dynamically pre-loadimages based on user behavior. It should be noted that the processillustrated in FIG. 20 may be performed in parallel with the processillustrated in FIGS. 19A-19E.

Referring again to FIG. 19A, computing device 200 determines whether ahorizontal inside swipe is initiated (1906). An example of a horizontalinside swipe is illustrated in FIG. 8A. In one example, computing device200 may determine that a horizontal inside swipe is initiated based ontouch event data received from a companion device and whether touchevent data indicates that movement of a user's finger exceed a minimumdistance. An example of a process that may occur upon determining that ahorizontal inside swipe is initiated is illustrated in FIG. 19B.Computing device 200 determines whether a horizontal outside swipe isinitiated (1908). An example of a horizontal inside swipe is illustratedin FIG. 8B. In one example, computing device 200 may determine that ahorizontal outside swipe is initiated based on touch event data receivedfrom a companion device. An example of a process that may occur upondetermining that a horizontal outside swipe is initiated is illustratedin FIG. 19C. Computing device 200 determines whether an upward swipe isinitiated (1910). An example of a process that may occur upondetermining that upward swipe is initiated is illustrated in FIG. 19D.Computing device 200 determines whether a downward swipe is initiated(1912). An example of a process may that occur upon determining that adownward swipe is initiated is illustrated in FIG. 19E. In this manner,as illustrated in FIG. 19A, computing device 200 renders a full screenpresentation and performs background processes while determining whethera particular user input has been received by a user interface. Based onwhether particular user inputs are received the full screen presentationand background processes may be updated. The process illustrated in FIG.19A may continue throughout a viewing session (e.g., while a user isaccessing television programming through a television application).

As described above, a horizontal inside swipe may correspond to channelchange transition. Upon determining that a horizontal inside swipe isinitiated, (i.e., a channel change transition is initiated in theexample illustrated in FIG. 19B), computing device 200 determineswhether the swipe is a left swipe or a right swipe (1914). Upondetermining that a left swipe occurs, computing device 200 rendersgraphics for a higher numbered television channel (1916). For example,referring to FIG. 9B, the item of content associated with window 902 maycorrespond to channel number N and the item of content associated withwindow 904 may correspond to channel number N+1. Upon determining that aright swipe occurs, computing device 200 renders graphics for a lowernumbered television channel (1918). For either a left or right swipe,computing device 200 determines whether a user continues a swipe gesturesuch that the gesture is within a threshold (1920). Upon determiningthat a gesture is within a threshold, computing device 200 initiatesaccess to an item of content (1922). Examples of initiating access to anitem of content based on a gesture being within a threshold aredescribed above with respect to FIG. 10. Computing device 200 furtherdetermines whether a threshold is exceeded (1924). Upon determining thata threshold is exceeded, computing device 200 changes a selected item ofcontent (1926). Examples of changing a selected item of content based ona gesture exceeding a threshold are described above with respect to FIG.10. Computing device 250 determines whether an action up event occurs(1928). That is, computing device 250 determines whether a usercompletes a swipe gesture. Upon an action up event occurring, computingdevice 200 renders a full screen presentation of a selected item ofcontent. The selected item of content may include a new item of contentbased on whether the horizontal inside swipe gesture exceeded athreshold.

As described above, a horizontal outside swipe may correspond to anapplication switching transition. Upon determining that a horizontaloutside swipe is initiated (i.e., an application switching transition isinitiated in the example illustrated in FIG. 19C), computing device 200renders graphics for an application zoom out view (1930). An example ofgraphics that may be rendered for an application zoom out view areillustrated in FIG. 12. Computing device 200 determines whether theswipe is a left swipe or a right swipe (1932). Upon determining that aleft swipe occurs, computing device 200 initiates loading of an N+1application (1934). Upon determining that a right swipe occurs,computing device 200 initiates loading of an N−1 application (1936). Itshould be noted that N+1 and N−1 are relative numbers with respect to acurrently selected application N. For example, referring to FIG. 12, theapplication associated with window 902 may be the N application, theapplication associated with window 1002 c may be the N+1 application,and the application associated with window 1002 b may be the N−1application. Computing device 200 determines whether a threshold isexceeded (1938). Upon determining that a threshold is exceeded,computing device 200 changes a selected application (1940). Examples ofchanging a selected application based on a gesture exceeding a thresholdare described above with respect to FIG. 11. Computing device determineswhether an action up event occurs (1942). Upon an action up eventoccurring, computing device 200 renders a full screen presentation of aselected item of content. The selected item of content may include a newapplication based on whether the horizontal outside swipe gestureexceeded a threshold.

As described above, an upward swipe may correspond to presentation of anon now guide and/or a grid guide. Upon determining that an upward swipeis initiated (i.e., presentation of an on now guide and/or a grid guideis initiated in the example illustrated in FIG. 19D), computing device200 renders an on now guide (1944). An example of an on now guide isillustrated in FIG. 14B. Computing device 200 further determines whetherthe upward swipe is a continued upward swipe (1946). Upon determiningthat the upward swipe is a continued upward swipe, computing device 200renders a grid guide (1948). An example of a grid guide is illustratedin FIG. 14C. As described above with respect to FIG. 14B and FIG. 14C,guides may include an active tile, which may be changed based on userinput. Computing device 200 changes an active tile based on receiveduser input (1950). As further, described above with respect to FIG. 14Band FIG. 14C, while a tile is active one or more user activations may bereceived. Computing device 200 determines whether an OK tap activationoccurs (1952). Upon determining that an OK tap activation occurs,computing device 200 presents a media card graphical user interface(1954). An example of a media card graphical user interface isillustrated in FIGS. 16A-16F. Computing device 200 determines whether anOK click activation occurs (1956). An example of an OK click activationis described above with respect to FIG. 8C. Upon determining that an OKclick activation occurs, computing device 200 changes the selected itemof content (1958). Computing device 200 determines whether an exit inputis received (1960). An example of an exit input is described above withrespect to FIG. 17B. As illustrated in FIG. 19D, upon determining, thatan OK click activation occurs or an exit input is received, computingdevice 200 renders a full screen presentation of a selected item ofcontent. The selected item of content may include a new item of contentbased on whether an OK click activation occurred.

As described above, a downward swipe may correspond to presentation of adynamic guide. Upon determining that a downward swipe is initiated(i.e., presentation a dynamic guide is initiated in the exampleillustrated in FIG. 19E), computing device 200 renders a dynamic guide(1962). An example of a dynamic guide is described above with respect toFIG. 14A. As described above with respect to FIG. 14A, dynamic guidesmay include an active tile, which may be changed based on user input.Computing device 200 changes an active tile based on received user input(1964). Computing device 200 determines whether an OK tap activationoccurs (1966). Upon determining that an OK tap activation occurs,computing device 200 presents a media card graphical user interface(1968). Computing device 200 determines whether an OK click activationoccurs (1970). Upon determining that an OK click activation occurs,computing device 200 changes the selected item of content (1972).Computing device 200 determines whether an exit input is received(1974). As illustrated in FIG. 19E, upon determining, that an OK clickactivation occurs or an exit input is received, computing device 200renders a full screen presentation of a selected item of content. Theselected item of content may include a new item of content based onwhether an OK click activation occurred. In this manner computing device200 represents an example of a computing device configured to enabletransitions between items of content.

As described herein, in one example, a method of facilitating access toitems of content comprises causing a video presentation for a selecteditem of content to be rendered on a display, determining whether touchevent data corresponds to a particular gesture, causing a guide to bepresented on the display, upon determining that the touch event datacorresponds to a vertical swipe gesture, and causing a transition fromthe selected item of content to another item of content, upondetermining that the touch event data corresponds to a horizontal swipegesture. In one example, causing a video presentation for a selecteditem of content to be rendered on the display includes causing a fullscreen video presentation for the selected item of content to berendered on the display, and causing a guide to be presented on thedisplay includes causing a reduced size video presentation and one ormore tiles to be rendered on the display. In one example, each of theone or more tiles includes visual indicators associated with respectiveitems of content. In one example, one of the one or more tiles is anactive tile, and the method further comprises changing the selected itemof content to an item of content associated with the active tile, upondetermining that a particular activation occurs. In one example, theparticular activation includes a click activation. In one example,causing a guide to be presented on the display includes causing adynamic guide to be presented on the display, upon determining that thereceived touch event data corresponds to a vertical swipe gesture havinga first direction and causing an on now guide to be presented on thedisplay, upon determining that the received touch event data correspondsto a vertical swipe gesture having a direction opposing the firstdirection. In one example, causing a dynamic guide to be presented onthe display includes causing one or more tiles to be rendered on thedisplay, wherein each of the one or more tiles includes visualindicators associated with respective trending items of content. In oneexample, causing an on now guide to be presented on the display includescausing one or more tiles to be rendered on the display, wherein each ofthe one or more tiles includes visual indicators associated withrespective event based items of content. In one example, causing atransition from the selected item of content to another item of contentincludes initiating a change from the selected item of content to anadjacent item of content within an ordered set of items of content. Inone example, the ordered set of items of content includes a channellisting and wherein initiating a change from the selected item ofcontent to an adjacent item of content includes initiating a change to alower numbered channel, upon determining that the received touch eventdata corresponds to a horizontal swipe gesture having a first direction,and initiating a change to a higher numbered channel, upon determiningthat the received touch event data corresponds to a horizontal swipegesture having a direction opposing the first direction. In one example,causing a transition from the selected item of content to another itemof content includes causing a window associated with an adjacent item ofcontent within an ordered set of items of content to be rendered on thedisplay. In one example, the window is sized such it spans the height ofthe display and includes an image plate and an information group. In oneexample, the method further comprises prioritizing images within asubset of images, wherein the subset includes one or more images from aset of images associated with a guide and one or more images from a setof images associated with a transition from the selected item of contentto another item of content. In one example, prioritizing images withinthe subset of images includes prioritizing images based on user profileinformation. In one example, user profile information includesinformation indicating the likelihood of a particular gesture beingperformed.

As described herein, in one example, a device for facilitating access toitems of content comprises an interface configured to enablecommunication with a companion device, and one or more processorsconfigured to cause a video presentation for a selected item of contentto be rendered on a display, determine whether touch event data receivedfrom a companion device corresponds to a particular gesture, cause aguide to be presented on the display, upon determining that the receivedtouch event data corresponds to a vertical swipe gesture, and cause atransition from the selected item of content to another item of content,upon determining that the received touch event data corresponds to ahorizontal swipe gesture. In one example, causing a guide to bepresented on the display includes causing one or more tiles to berendered on the display, wherein each of the one or more tiles includesvisual indicators associated with respective items of content, andwherein one of the one or more tiles is an active tile. In one example,the one or more processors are further configured to receive a clickactivation from the companion device and change the selected item ofcontent to an item of content associated with the active tile, uponreceiving the click activation. In one example, the one or moreprocessors are further configured to receive a directional clickactivation from the companion device and change the active tile, uponreceiving the directional click activation. In one example, the one ormore processors are further configured to send an indication of tilesrendered on the display to the companion device, and change the selecteditem of content to an item of content upon receiving touch event datafrom the companion device that corresponds to activation of an iconassociated with a tile.

The disclosed and other embodiments, modules and the functionaloperations described in this document can be implemented in digitalelectronic circuitry, or in computer software, firmware, or hardware,including the structures disclosed in this document and their structuralequivalents, or in combinations of one or more of them. The disclosedand other embodiments can be implemented as one or more computer programproducts, i.e., one or more modules of computer program instructionsencoded on a computer readable medium for execution by, or to controlthe operation of, data processing apparatus. The computer readablemedium can be a machine-readable storage device, a machine-readablestorage substrate, a memory device, a composition of matter effecting amachine-readable propagated signal, or a combination of one or morethem. The term “data processing apparatus” encompasses all apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, or multiple processors or computers.The apparatus can include, in addition to hardware, code that creates anexecution environment for the computer program in question, e.g., codethat constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, or a combination of one or moreof them. A propagated signal is an artificially generated signal, e.g.,a machine-generated electrical, optical, or electromagnetic signal,which is generated to encode information for transmission to suitablereceiver apparatus.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, and it can bedeployed in any form, including as a standalone program or as a module,component, subroutine, or other unit suitable for use in a computingenvironment. A computer program does not necessarily correspond to afile in a file system. A program can be stored in a portion of a filethat holds other programs or data (e.g., one or more scripts stored in amark-up language document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub programs, or portions of code). A computer programcan be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows described in this document can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto optical disks, or optical disks. However, a computerneed not have such devices. Computer readable media suitable for storingcomputer program instructions and data include all forms of non-volatilememory, media and memory devices, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto optical disks; and CD ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, special purposelogic circuitry.

While this patent document contains many specifics, these should not beconstrued as limitations on the scope of an invention that is claimed orof what may be claimed, but rather as descriptions of features specificto particular embodiments. Certain features that are described in thisdocument in the context of separate embodiments can also be implementedin combination in a single embodiment. Conversely, various features thatare described in the context of a single embodiment can also beimplemented in multiple embodiments separately or in any suitablesub-combination. Moreover, although features may be described above asacting in certain combinations and even initially claimed as such, oneor more features from a claimed combination can in some cases be excisedfrom the combination, and the claimed combination may be directed to asub-combination or a variation of a sub-combination. Similarly, whileoperations are depicted in the drawings in a particular order, thisshould not be understood as requiring that such operations be performedin the particular order shown or in sequential order, or that allillustrated operations be performed, to achieve desirable results.

Only a few examples and implementations are disclosed. Variations,modifications, and enhancements to the described examples andimplementations and other implementations can be made based on what isdisclosed.

What is claimed is:
 1. A companion device to remotely control a maindisplay comprising: a memory; a touch screen comprising a top surface, adisplay viewable through the top surface, and one or more interactiveelements on a portion of the top surface of the touch screen; and aprocessor coupled to the memory, the processor comprising instructionsthat when executed configure the processor to: receive user inputassociated with the one or more interactive elements of the touchscreen, the one or more interactive elements defining a predefined areaof the touch screen; determine whether a starting point of the userinput is inside of the predefined area of the touch screen defined bythe one or more interactive elements or outside of the predefined areaof the touch screen defined by the one or more interactive elements;determine a distance of the user input and a direction of the userinput; determine first event data when the starting point of the userinput is inside of the predefined area of the touch screen defined bythe one or more interactive elements and based on the determineddistance and the determined direction of the user input, the first eventdata being associated with a first control function; determine secondevent data when the starting point of the user input is outside of thepredefined area of the touch screen defined by the one or moreinteractive elements and based on the determined distance and thedetermined direction of the user input, the second event data beingassociated with a second control function and being based on thedistance and the direction used to determine the first event data whenthe starting point of the user input is inside of the predefined area ofthe touch screen defined by the one or more interactive elements, thefirst control function being different from the second control function;and provide the first event data or the second event data forcontrolling content presented on the main display.
 2. The companiondevice of claim 1, wherein the user input is a gesture using the one ormore interactive elements.
 3. The companion device of claim 1, whereinto determine at least one of the first event data and the second eventdata comprises filtering user input to calculate average coordinatevalues of multiple sample touches, wherein at least one of the firstevent data and the second event data comprises a reduced set of touchcoordinate values to be processed by a computing device associated withthe main display.
 4. The companion device of claim 1, wherein thedisplay of the touch screen provides dynamic text or images associatedwith a context of the main display.
 5. The companion device of claim 1,wherein the one or more interactive elements comprise one or moreprotrusions extending from the top surface.
 6. The companion device ofclaim 5, wherein the one or more protrusions are pressure sensitive, andwherein at least one of the first event data and the second event datais determined based on an amount of pressure applied to the one or moreinteractive elements.
 7. The companion device of claim 1, wherein theone or more interactive elements comprise one or more indentations inthe top surface.
 8. The companion device of claim 1, wherein the displayof the touch screen is a flexible display device.
 9. The companiondevice of claim 1, wherein the display of the touch screen does notpresent video content.
 10. The companion device of claim 1, wherein thetop surface is coupled to an assembly, and wherein depressing the topsurface into the assembly activates at least one switch.
 11. Thecompanion device of claim 10, wherein the user input comprises selectingat least one of the interactive elements and activating at least oneswitch, wherein activating the at least one switch changes at least oneof the first event data and the second event data.
 12. The companiondevice of claim 1, wherein the processor comprises instructions thatwhen executed configure the processor to provide feedback via thecompanion device based on at least one of the first event data or thesecond event data, wherein the feedback is at least one of visual,audio, and haptic output by the companion device.
 13. The companiondevice of claim 1, wherein in response to providing the first event dataor the second event data, the processor is further configured to receivea confirmation message confirming whether the first event data or thesecond event data is accepted to control the main display.
 14. Thecompanion device of claim 1, wherein the first event data or the secondevent data indicates a selection event.
 15. A method of facilitatingcontrol of a main display with a companion device comprising: receivinguser input via a touch screen of a companion device, wherein the touchscreen comprises a top surface, a display viewable through the topsurface, and one or more interactive elements defining a predefined areaon a portion of the top surface of the touch screen, wherein the userinput is associated with the one or more interactive elements of thetouch screen; determining whether a starting point of the user input isinside of the predefined area of the touch screen defined by the one ormore interactive elements or outside of the predefined area of the touchscreen defined by the one or more interactive elements; determining adistance of the user input and a direction of the user input;determining first event data when the starting point of the user inputis inside of the predefined area of the touch screen defined by the oneor more interactive elements and based on the determined distance andthe determined direction of the user input, the first event data beingassociated with a first control function; determining second event datawhen the starting point of the user input is outside of the predefinedarea of the touch screen defined by the one or more interactive elementsand based on the determined distance and the determined direction of theuser input, the second event data being associated with a second controlfunction and being based on the distance and the direction used todetermine the first event data when the starting point of the user inputis inside of the predefined area of the touch screen defined by the oneor more interactive elements, the first control function being differentfrom the second control function; and providing the first event data orthe second event data for controlling content presented on the maindisplay.
 16. The method of claim 15, wherein the display of thecompanion device does not present video content; and wherein, inresponse determining that the second event data corresponds to a swipegesture initiated outside of the predefined area of the touch screendefined by the one or more interactive elements, the second event datacauses the main display to transition between a television serviceapplication and at least one of a media streaming service applicationand a content guide service.
 17. A non-transitory computer readablemedium comprising instructions that when executed by a processingdevice, cause the processing device to: receive user input via a touchscreen of a companion device, wherein the touch screen comprises a topsurface, a display viewable through the top surface, and one or moreinteractive elements defining a predefined area on a portion of the topsurface of the touch screen, wherein the user input is associated withthe one or more interactive elements of the touch screen; determinewhether a starting point of the user input is inside of the predefinedarea of the touch screen defined by the one or more interactive elementsor outside of the predefined area of the touch screen defined by the oneor more interactive elements; determine a distance of the user input anda direction of the user input; determine first event data when thestarting point of the user input is inside of the predefined area of thetouch screen defined by the one or more interactive elements and basedon the determined distance and the determined direction of the userinput, the first event data being associated with a first controlfunction; determine second event data when the starting point of theuser input is outside of the predefined area of the touch screen definedby the one or more interactive elements and based on the determineddistance and the determined direction of the user input, the secondevent data being associated with a second control function and beingbased on the distance and the direction used to determine the firstevent data when the starting point of the user input is inside of theone or more interactive elements, the first control function beingdifferent from the second control function; and provide the first eventdata or the second event data for controlling content presented on amain display.
 18. The non-transitory computer readable medium of claim17, wherein the interactive elements comprise one or more protrusionsextending from the top surface, wherein the one or more protrusions arepressure sensitive, and wherein at least one of the first event data orthe second event data is determined based on an amount of pressureapplied to the one or more interactive elements.
 19. The companiondevice of claim 1, wherein a speed of movement of the content presentedon the main display is based on a speed of movement of the user input.20. The method of claim 15, wherein a speed of movement of the contentpresented on the main display is based on a speed of movement of theuser input.